From 2537ae2858137d695046144969cbb23bfa892199 Mon Sep 17 00:00:00 2001 From: Claire Dagan Date: Fri, 13 Sep 2024 15:38:13 +0200 Subject: [PATCH] [Map] hide mission and reporting zone when pop-up is closed --- .../MissionToAttach/index.tsx | 2 +- .../Semaphore/components/Overlay/index.tsx | 2 +- frontend/src/features/map/index.tsx | 2 +- .../overlays/OverlayPositionOnCentroid.tsx | 21 ++++++++++++++++--- .../src/features/map/overlays/position.ts | 1 - .../Overlays}/MissionCard.tsx | 0 .../missions => missions/Overlays}/index.tsx | 10 ++++----- 7 files changed, 26 insertions(+), 12 deletions(-) rename frontend/src/features/{map/overlays/missions => missions/Overlays}/MissionCard.tsx (100%) rename frontend/src/features/{map/overlays/missions => missions/Overlays}/index.tsx (88%) diff --git a/frontend/src/features/Reportings/components/ReportingOverlay/MissionToAttach/index.tsx b/frontend/src/features/Reportings/components/ReportingOverlay/MissionToAttach/index.tsx index 0c390c94c4..4505361f93 100644 --- a/frontend/src/features/Reportings/components/ReportingOverlay/MissionToAttach/index.tsx +++ b/frontend/src/features/Reportings/components/ReportingOverlay/MissionToAttach/index.tsx @@ -1,5 +1,5 @@ -import { MissionCard } from '@features/map/overlays/missions/MissionCard' import { OverlayPositionOnCentroid } from '@features/map/overlays/OverlayPositionOnCentroid' +import { MissionCard } from '@features/missions/Overlays/MissionCard' import { useAppSelector } from '@hooks/useAppSelector' import { Layers } from 'domain/entities/layers/constants' import { convertToFeature } from 'domain/types/map' diff --git a/frontend/src/features/Semaphore/components/Overlay/index.tsx b/frontend/src/features/Semaphore/components/Overlay/index.tsx index 9beb9c105e..525cf343e1 100644 --- a/frontend/src/features/Semaphore/components/Overlay/index.tsx +++ b/frontend/src/features/Semaphore/components/Overlay/index.tsx @@ -15,7 +15,7 @@ const SUPER_USER_MARGINS = { xRight: -55, yBottom: 50, yMiddle: 100, - yTop: -170 + yTop: -200 } const MARGINS = { diff --git a/frontend/src/features/map/index.tsx b/frontend/src/features/map/index.tsx index f8496545b1..e280302da6 100644 --- a/frontend/src/features/map/index.tsx +++ b/frontend/src/features/map/index.tsx @@ -24,11 +24,11 @@ import { RegulatoryPreviewLayer } from './layers/Regulatory/RegulatoryPreviewLay import { MapExtentController } from './MapExtentController' import { MapHistory } from './MapHistory' import { ActionOverlay } from './overlays/actions' -import { MissionOverlays } from './overlays/missions' import { ZoomListener } from './ZoomListener' import { InterestPointLayer } from '../InterestPoint/components/InterestPointLayer' import { ReportingToAttachLayer } from '../missions/Layers/ReportingToAttach' import { HoveredReportingToAttachLayer } from '../missions/Layers/ReportingToAttach/HoveredReportingToAttachLayer' +import { MissionOverlays } from '../missions/Overlays' import { ReportingToAttachOverlays } from '../missions/Overlays/ReportingToAttach' import { MissionToAttachLayer } from '../Reportings/components/ReportingLayer/MissionToAttach' import { HoveredMissionToAttachLayer } from '../Reportings/components/ReportingLayer/MissionToAttach/HoveredMissionToAttachLayer' diff --git a/frontend/src/features/map/overlays/OverlayPositionOnCentroid.tsx b/frontend/src/features/map/overlays/OverlayPositionOnCentroid.tsx index 9b54bb1394..c896c8dc88 100644 --- a/frontend/src/features/map/overlays/OverlayPositionOnCentroid.tsx +++ b/frontend/src/features/map/overlays/OverlayPositionOnCentroid.tsx @@ -1,4 +1,6 @@ +import { missionActions } from '@features/missions/slice' import { Layers } from 'domain/entities/layers/constants' +import { reportingActions } from 'domain/shared_slices/reporting' import { resetSelectedSemaphore } from 'domain/shared_slices/SemaphoresSlice' import { convertToFeature, type MapClickEvent } from 'domain/types/map' import { setOpenedOverlay } from 'domain/use_cases/map/setOpenedOverlay' @@ -173,14 +175,27 @@ export function OverlayPositionOnCentroid({ useEffect(() => { const selectedFeature = convertToFeature(mapClickEvent?.feature) + if (selectedFeature) { - unselectSemaphore(selectedFeature) + unselectPreviousFeature(selectedFeature) dispatch(setOpenedOverlay(String(selectedFeature.getId()))) } - function unselectSemaphore(semaphoreFeature: Feature) { - if (!String(semaphoreFeature.getId()).includes(Layers.SEMAPHORES.code)) { + function unselectPreviousFeature(nextFeature: Feature) { + const featureId = String(nextFeature.getId()) + if (!featureId.includes(Layers.SEMAPHORES.code)) { dispatch(resetSelectedSemaphore()) + + return + } + if (!featureId.includes(Layers.MISSIONS.code)) { + dispatch(missionActions.resetSelectedMissionIdOnMap()) + + return + } + + if (!featureId.includes(Layers.REPORTINGS.code)) { + dispatch(reportingActions.setSelectedReportingIdOnMap(undefined)) } } }, [dispatch, mapClickEvent?.feature]) diff --git a/frontend/src/features/map/overlays/position.ts b/frontend/src/features/map/overlays/position.ts index bcd486d86d..6c79140f8d 100644 --- a/frontend/src/features/map/overlays/position.ts +++ b/frontend/src/features/map/overlays/position.ts @@ -110,7 +110,6 @@ export enum OverlayPosition { */ export function getTopLeftMargin(nextOverlayPosition: OverlayPosition, margins: Margins) { const { xLeft, xMiddle, xRight, yBottom, yMiddle, yTop } = margins - switch (nextOverlayPosition) { case OverlayPosition.TOP_LEFT: return [yTop, xLeft] diff --git a/frontend/src/features/map/overlays/missions/MissionCard.tsx b/frontend/src/features/missions/Overlays/MissionCard.tsx similarity index 100% rename from frontend/src/features/map/overlays/missions/MissionCard.tsx rename to frontend/src/features/missions/Overlays/MissionCard.tsx diff --git a/frontend/src/features/map/overlays/missions/index.tsx b/frontend/src/features/missions/Overlays/index.tsx similarity index 88% rename from frontend/src/features/map/overlays/missions/index.tsx rename to frontend/src/features/missions/Overlays/index.tsx index 11328379a7..682726a8de 100644 --- a/frontend/src/features/map/overlays/missions/index.tsx +++ b/frontend/src/features/missions/Overlays/index.tsx @@ -3,12 +3,12 @@ import { convertToFeature } from 'domain/types/map' import { useState } from 'react' import { MissionCard } from './MissionCard' -import { Layers } from '../../../../domain/entities/layers/constants' -import { useAppSelector } from '../../../../hooks/useAppSelector' -import { OverlayPositionOnCentroid } from '../OverlayPositionOnCentroid' +import { Layers } from '../../../domain/entities/layers/constants' +import { useAppSelector } from '../../../hooks/useAppSelector' +import { OverlayPositionOnCentroid } from '../../map/overlays/OverlayPositionOnCentroid' -import type { VectorLayerWithName } from '../../../../domain/types/layer' -import type { BaseMapChildrenProps } from '../../BaseMap' +import type { VectorLayerWithName } from '../../../domain/types/layer' +import type { BaseMapChildrenProps } from '../../map/BaseMap' const OPTIONS = { margins: {