diff --git a/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts b/frontend/src/features/ControlUnit/components/ControlUnitListDialog/slice.ts index 912bef711..8bc31a93e 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 22f493909..ff18485cc 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 f7159dd35..9361f9f2f 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)) }