diff --git a/src/components/results/common/global-filter/global-filter-provider.tsx b/src/components/results/common/global-filter/global-filter-provider.tsx index 365529ec48..2fb6274782 100644 --- a/src/components/results/common/global-filter/global-filter-provider.tsx +++ b/src/components/results/common/global-filter/global-filter-provider.tsx @@ -29,12 +29,14 @@ export default function GlobalFilterProvider({ filterCategories, genericFiltersStrictMode = false, equipmentTypes = undefined, + onAfterChange, }: PropsWithChildren & { onChange: (globalFilters: GlobalFilter[]) => void; filterCategories: string[]; preloadedGlobalFilters?: GlobalFilter[]; genericFiltersStrictMode: boolean; equipmentTypes: string[] | undefined; + onAfterChange?: () => void; }) { const dispatch = useDispatch(); const { snackError } = useSnackMessage(); @@ -111,9 +113,10 @@ export default function GlobalFilterProvider({ setSelectedGlobalFilters(validSelectedGlobalFilters); // propagate only valid selected filters handleChange(validSelectedGlobalFilters); + onAfterChange?.(); }); }, - [checkSelectedFiltersPromise, setSelectedGlobalFilters, handleChange] + [checkSelectedFiltersPromise, setSelectedGlobalFilters, handleChange, onAfterChange] ); const value = useMemo( diff --git a/src/components/results/common/global-filter/global-filter-selector.tsx b/src/components/results/common/global-filter/global-filter-selector.tsx index d396bd816c..b161e61729 100644 --- a/src/components/results/common/global-filter/global-filter-selector.tsx +++ b/src/components/results/common/global-filter/global-filter-selector.tsx @@ -16,6 +16,7 @@ export type GlobalFilterSelectorProps = GlobalFilterAutocompleteProps & { preloadedGlobalFilters?: GlobalFilter[]; genericFiltersStrictMode: boolean; disableGenericFilters?: boolean; + onAfterChange?: () => void; }; export default function GlobalFilterSelector({ onChange, @@ -25,6 +26,7 @@ export default function GlobalFilterSelector({ //If this parameter is enabled, only generic filters of the same type as those provided in filterableEquipmentTypes will be available genericFiltersStrictMode = false, disableGenericFilters = false, + onAfterChange, }: Readonly) { // Global filter autocomplete displayed categories are dynamically provided from the on hand filters, GENERIC_FILTER gets manually added const filterCategories = useMemo(() => { @@ -41,6 +43,7 @@ export default function GlobalFilterSelector({ return ( = ({ studyUuid, @@ -39,6 +41,13 @@ export const PccMinResultTab: FunctionComponent = ({ const { globalFiltersFromState, updateGlobalFilters } = useComputationGlobalFilters(AgGridFilterType.PccMin); const { countriesFilter, voltageLevelsFilter, propertiesFilter } = useGlobalFilterOptions(); + const { pagination, dispatchPagination } = usePaginationSelector(PaginationType.PccMin, PCCMIN_RESULT); + const { rowsPerPage } = pagination; + + const resetPagination = useCallback(() => { + dispatchPagination({ page: 0, rowsPerPage }); + }, [dispatchPagination, rowsPerPage]); + const handleSubTabChange = useCallback((event: SyntheticEvent, newIndex: number) => { setResultOrLogIndex(newIndex); }, []); @@ -68,6 +77,7 @@ export const PccMinResultTab: FunctionComponent = ({ { + if (tabIndex === NMK_RESULTS_TAB_INDEX) { + dispatchPagination({ page: 0, rowsPerPage }); + } + }, [dispatchPagination, tabIndex, rowsPerPage]); + const queryParams: SecurityAnalysisQueryParams = useMemo(() => { const params: SecurityAnalysisQueryParams = { resultType, @@ -302,6 +308,7 @@ export const SecurityAnalysisResultTab: FunctionComponent { + dispatchPagination({ page: 0, rowsPerPage }); + }, [dispatchPagination, rowsPerPage]); + const openLoader = useOpenLoaderShortWait({ isLoading: sensitivityAnalysisStatus === RunningStatus.RUNNING, delay: RESULTS_LOADING_DELAY, @@ -97,6 +111,7 @@ function SensitivityAnalysisResultTab({ { +export const mappingTabs = (sensiResultKind: SensiKind, nOrNkIndex: number): SensitivityAnalysisTab => { switch (sensiResultKind) { case SENSITIVITY_IN_DELTA_MW: return nOrNkIndex === 0 ? SENSITIVITY_IN_DELTA_MW_N : SENSITIVITY_IN_DELTA_MW_N_K; @@ -71,8 +72,6 @@ export const mappingTabs = (sensiResultKind: SensiKind, nOrNkIndex: number) => { return nOrNkIndex === 0 ? SENSITIVITY_IN_DELTA_A_N : SENSITIVITY_IN_DELTA_A_N_K; case SENSITIVITY_AT_NODE: return nOrNkIndex === 0 ? SENSITIVITY_AT_NODE_N : SENSITIVITY_AT_NODE_N_K; - default: - return ''; } }; diff --git a/src/components/results/shortcircuit/shortcircuit-analysis-result-tab.tsx b/src/components/results/shortcircuit/shortcircuit-analysis-result-tab.tsx index 26f7c33905..a3fad56a13 100644 --- a/src/components/results/shortcircuit/shortcircuit-analysis-result-tab.tsx +++ b/src/components/results/shortcircuit/shortcircuit-analysis-result-tab.tsx @@ -31,7 +31,13 @@ import GlobalFilterSelector from '../common/global-filter/global-filter-selector import { EQUIPMENT_TYPES } from '../../utils/equipment-types'; import { useGlobalFilterOptions } from '../common/global-filter/use-global-filter-options'; import { useComputationGlobalFilters } from '../common/global-filter/use-computation-global-filters'; -import { FilterType as AgGridFilterType } from '../../../types/custom-aggrid-types'; +import { + FilterType as AgGridFilterType, + PaginationType, + ShortcircuitAnalysisTab, +} from '../../../types/custom-aggrid-types'; +import { usePaginationSelector } from '../../../hooks/use-pagination-selector'; +import { mappingTabs } from './shortcircuit-analysis-result-content'; interface ShortCircuitAnalysisResultTabProps { studyUuid: UUID; @@ -69,6 +75,28 @@ export const ShortCircuitAnalysisResultTab: FunctionComponent { + if (tabIndex !== ShortCircuitAnalysisResultTabs.ALL_BUSES) { + return; + } + if (resultOrLogIndex !== RESULTS_TAB_INDEX) { + return; + } + if (page === 0) { + return; + } + dispatchPagination({ page: 0, rowsPerPage }); + }, [tabIndex, resultOrLogIndex, page, dispatchPagination, rowsPerPage]); + const AllBusesShortCircuitStatus = useSelector( (state: AppState) => state.computingStatus[ComputingType.SHORT_CIRCUIT] ); @@ -87,9 +115,6 @@ export const ShortCircuitAnalysisResultTab: FunctionComponent