extractKey?: (item: any) => React.Key;
}
-let prevRoute = '';
-let prevRefresh = '';
-let routeChanged = false;
-let isWorking = false;
-
const mapStateToProps = (state: RootState, { id }: Props) => {
const progress = state.progressIndicator.find(p => p.id === id);
const dataExplorerState = getDataExplorer(state.dataExplorer, id);
const currentRoute = state.router.location ? state.router.location.pathname : '';
const currentRefresh = localStorage.getItem(LAST_REFRESH_TIMESTAMP) || '';
const currentItemUuid = currentRoute === '/workflows' ? state.properties.workflowPanelDetailsUuid : state.detailsPanel.resourceUuid;
-
- if (currentRoute !== prevRoute || currentRefresh !== prevRefresh) {
- routeChanged = true;
- prevRoute = currentRoute;
- prevRefresh = currentRefresh;
- }
- if (progress?.working) {
- isWorking = true;
- }
-
- const working = routeChanged && isWorking;
-
- if (working && !progress?.working) {
- routeChanged = false;
- isWorking = false;
- }
-
- return { ...dataExplorerState, working, paperKey: currentRoute, currentItemUuid };
+ return {
+ ...dataExplorerState,
+ working: !!progress?.working,
+ currentRefresh: currentRefresh,
+ currentRoute: currentRoute,
+ paperKey: currentRoute,
+ currentItemUuid,
+ };
};
const mapDispatchToProps = () => {
return (dispatch: Dispatch, { id, onRowClick, onRowDoubleClick, onContextMenu }: Props) => ({
- onSetColumns: (columns: DataColumns<any>) => {
+ onSetColumns: (columns: DataColumns<any, any>) => {
dispatch(dataExplorerActions.SET_COLUMNS({ id, columns }));
},
dispatch(dataExplorerActions.SET_EXPLORER_SEARCH_VALUE({ id, searchValue }));
},
- onColumnToggle: (column: DataColumn<any>) => {
+ onColumnToggle: (column: DataColumn<any, any>) => {
dispatch(dataExplorerActions.TOGGLE_COLUMN({ id, columnName: column.name }));
},
- onSortToggle: (column: DataColumn<any>) => {
+ onSortToggle: (column: DataColumn<any, any>) => {
dispatch(dataExplorerActions.TOGGLE_SORT({ id, columnName: column.name }));
},
- onFiltersChange: (filters: DataTableFilters, column: DataColumn<any>) => {
+ onFiltersChange: (filters: DataTableFilters, column: DataColumn<any, any>) => {
dispatch(dataExplorerActions.SET_FILTERS({ id, columnName: column.name, filters }));
},
};
export const DataExplorer = connect(mapStateToProps, mapDispatchToProps)(DataExplorerComponent);
-