mirror of
https://github.com/Radarr/Radarr
synced 2026-01-15 03:53:12 +01:00
78 lines
1.6 KiB
TypeScript
78 lines
1.6 KiB
TypeScript
import Column from 'Components/Table/Column';
|
|
import { SortDirection } from 'Helpers/Props/sortDirections';
|
|
import { ValidationFailure } from 'typings/pending';
|
|
import { FilterBuilderProp, PropertyFilter } from './AppState';
|
|
|
|
export interface Error {
|
|
status?: number;
|
|
responseJSON:
|
|
| {
|
|
message: string | undefined;
|
|
}
|
|
| ValidationFailure[]
|
|
| undefined;
|
|
}
|
|
|
|
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<T> {
|
|
selectedFilterKey: string;
|
|
filters: PropertyFilter[];
|
|
filterBuilderProps: FilterBuilderProp<T>[];
|
|
}
|
|
|
|
export interface AppSectionSchemaState<T> {
|
|
isSchemaFetching: boolean;
|
|
isSchemaPopulated: boolean;
|
|
schemaError: Error;
|
|
schema: {
|
|
items: T[];
|
|
};
|
|
}
|
|
|
|
export interface AppSectionItemState<T> {
|
|
isFetching: boolean;
|
|
isPopulated: boolean;
|
|
error: Error;
|
|
pendingChanges: Partial<T>;
|
|
item: T;
|
|
}
|
|
|
|
export interface AppSectionProviderState<T>
|
|
extends AppSectionDeleteState,
|
|
AppSectionSaveState {
|
|
isFetching: boolean;
|
|
isPopulated: boolean;
|
|
error: Error;
|
|
items: T[];
|
|
pendingChanges: Partial<T>;
|
|
}
|
|
|
|
interface AppSectionState<T> {
|
|
isFetching: boolean;
|
|
isPopulated: boolean;
|
|
error: Error;
|
|
items: T[];
|
|
sortKey: string;
|
|
sortDirection: SortDirection;
|
|
}
|
|
|
|
export default AppSectionState;
|