resetSortDirection,
SortDirection,
toggleSortDirection
-} from "~/components/data-table/data-column";
-import { DataExplorerAction, dataExplorerActions } from "./data-explorer-action";
-import { DataColumns, DataTableFetchMode } from "~/components/data-table/data-table";
-import { DataTableFilters } from "~/components/data-table-filters/data-table-filters-tree";
+} from "components/data-table/data-column";
+import { DataExplorerAction, dataExplorerActions, DataTableRequestState } from "./data-explorer-action";
+import { DataColumns, DataTableFetchMode } from "components/data-table/data-table";
+import { DataTableFilters } from "components/data-table-filters/data-table-filters-tree";
export interface DataExplorer {
fetchMode: DataTableFetchMode;
rowsPerPageOptions: number[];
searchValue: string;
working?: boolean;
+ requestState: DataTableRequestState;
}
export const initialDataExplorer: DataExplorer = {
page: 0,
rowsPerPage: 50,
rowsPerPageOptions: [50, 100, 200, 500],
- searchValue: ""
+ searchValue: "",
+ requestState: DataTableRequestState.IDLE
};
export type DataExplorerState = Record<string, DataExplorer>;
update(state, id, mapColumns(setFilters(columnName, filters))),
SET_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) =>
- update(state, id, explorer => ({ ...explorer, items, itemsAvailable, page, rowsPerPage })),
+ update(state, id, explorer => ({ ...explorer, items, itemsAvailable, page: page || 0, rowsPerPage })),
APPEND_ITEMS: ({ id, items, itemsAvailable, page, rowsPerPage }) =>
update(state, id, explorer => ({
SET_EXPLORER_SEARCH_VALUE: ({ id, searchValue }) =>
update(state, id, explorer => ({ ...explorer, searchValue })),
+ SET_REQUEST_STATE: ({ id, requestState }) =>
+ update(state, id, explorer => ({ ...explorer, requestState })),
+
TOGGLE_SORT: ({ id, columnName }) =>
update(state, id, mapColumns(toggleSort(columnName))),