import Column from 'Components/Table/Column'; import { SortDirection } from 'Helpers/Props/sortDirections'; import { FilterBuilderProp, PropertyFilter } from './AppState'; export interface Error { responseJSON: { message: string; }; } export interface AppSectionDeleteState { isDeleting: boolean; deleteError: Error; } export interface AppSectionSaveState { isSaving: boolean; saveError: Error; } export interface PagedAppSectionState { page: number; pageSize: number; totalPages: number; totalRecords?: number; } export interface TableAppSectionState { columns: Column[]; } export interface AppSectionFilterState { selectedFilterKey: string; filters: PropertyFilter[]; filterBuilderProps: FilterBuilderProp[]; } export interface AppSectionSchemaState { isSchemaFetching: boolean; isSchemaPopulated: boolean; schemaError: Error; schema: { items: T[]; }; } export interface AppSectionItemSchemaState { isSchemaFetching: boolean; isSchemaPopulated: boolean; schemaError: Error; schema: T; } export interface AppSectionItemState { isFetching: boolean; isPopulated: boolean; error: Error; pendingChanges: Partial; item: T; } interface AppSectionState { isFetching: boolean; isPopulated: boolean; error: Error; items: T[]; sortKey: string; sortDirection: SortDirection; } export default AppSectionState;