From 8df0b0bfce430aaf1e4597179438c40dff65e88f Mon Sep 17 00:00:00 2001 From: Claire Dagan Date: Mon, 20 Jan 2025 17:47:21 +0100 Subject: [PATCH] [Mission] Reset controlUnit filters when zoom on stations from mission --- .../ControlUnit/components/ControlUnitListDialog/slice.ts | 3 +++ .../src/features/ControlUnit/useCases/centerOnStation.ts | 6 ++++++ .../MissionForm/ControlUnitsForm/ControlUnitSelector.tsx | 5 ++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts b/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts index 912bef7115..8bc31a93e9 100644 --- a/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts +++ b/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts @@ -22,6 +22,9 @@ const controlUnitListDialogSlice = createSlice({ initialState: INITIAL_STATE, name: 'controlUnitListDialog', reducers: { + resetFilters() { + return INITIAL_STATE + }, setFilter( state, action: PayloadAction<{ diff --git a/frontend/src/features/ControlUnit/useCases/centerOnStation.ts b/frontend/src/features/ControlUnit/useCases/centerOnStation.ts index 22f493909a..ff18485cc7 100644 --- a/frontend/src/features/ControlUnit/useCases/centerOnStation.ts +++ b/frontend/src/features/ControlUnit/useCases/centerOnStation.ts @@ -10,6 +10,8 @@ import { addBufferToExtent } from '../utils' import type { HomeAppThunk } from '@store/index' import type { Station } from 'domain/entities/station' +const FIVE_SECONDS = 5000 + export const centerOnStation = (stations: Station.Station[] | Station.StationData[]): HomeAppThunk => dispatch => { @@ -43,4 +45,8 @@ export const centerOnStation = } dispatch(stationActions.hightlightFeatureIds(highlightedStationFeatureIds)) + + setTimeout(() => { + dispatch(stationActions.hightlightFeatureIds([])) + }, FIVE_SECONDS) } diff --git a/frontend/src/features/Mission/components/MissionForm/ControlUnitsForm/ControlUnitSelector.tsx b/frontend/src/features/Mission/components/MissionForm/ControlUnitsForm/ControlUnitSelector.tsx index f7159dd359..9361f9f2f4 100644 --- a/frontend/src/features/Mission/components/MissionForm/ControlUnitsForm/ControlUnitSelector.tsx +++ b/frontend/src/features/Mission/components/MissionForm/ControlUnitsForm/ControlUnitSelector.tsx @@ -1,4 +1,5 @@ import { useGetStationsQuery } from '@api/stationsAPI' +import { controlUnitListDialogActions } from '@features/ControlUnit/components/ControlUnitListDialog/slice' import { centerOnStation } from '@features/ControlUnit/useCases/centerOnStation' import { isMissionNew } from '@features/Mission/utils' import { @@ -186,7 +187,7 @@ export function ControlUnitSelector({ resourcesHelpers.setValue(nextControlUnitResources) } - const zoomOnStation = () => { + const zoomOnStation = async () => { const selectedControlUnit = controlUnitsData?.find(controlUnit => controlUnit.id === unitField.value) const stations = uniqBy( bases?.filter(base => @@ -197,11 +198,13 @@ export function ControlUnitSelector({ if (!selectedControlUnit) { return } + dispatch( globalActions.setDisplayedItems({ displayStationLayer: true }) ) + await dispatch(controlUnitListDialogActions.resetFilters()) dispatch(centerOnStation(stations)) }