Skip to content

Commit 6ebf003

Browse files
authored
Fix: consolidate drawing mode functionality (#3182)
Signed-off-by: Ayoub LABIDI <[email protected]>
1 parent 8ce3605 commit 6ebf003

File tree

9 files changed

+1108
-1141
lines changed

9 files changed

+1108
-1141
lines changed

src/components/diagrams/map-card.tsx

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
77
import { Box, Dialog, Fab, Theme, useTheme } from '@mui/material';
8-
import { forwardRef, MouseEventHandler, Ref, TouchEventHandler, useCallback, useState } from 'react';
8+
import { forwardRef, MouseEventHandler, Ref, TouchEventHandler, useCallback, useRef, useState } from 'react';
99
import CardHeader from './card-header';
1010
import { UUID } from 'crypto';
1111
import AlertCustomMessageNode from 'components/utils/alert-custom-message-node';
12-
import { EquipmentType, LineFlowMode, mergeSx } from '@gridsuite/commons-ui';
12+
import { EquipmentType, LineFlowMode, mergeSx, useStateBoolean } from '@gridsuite/commons-ui';
1313
import { useDispatch, useSelector } from 'react-redux';
1414
import { AppState } from 'redux/reducer';
1515
import { resetMapEquipment, setMapDataLoading, setOpenMap, setReloadMapNeeded } from 'redux/actions';
1616
import WorldSvg from 'images/world.svg?react';
17-
import NetworkMapTab from 'components/network/network-map-tab';
17+
import NetworkMapTab, { NetworkMapTabRef } from 'components/network/network-map-tab';
1818
import { cardStyles } from './card-styles';
1919
import { Close } from '@mui/icons-material';
2020
import { FormattedMessage, useIntl } from 'react-intl';
@@ -82,12 +82,24 @@ export const MapCard = forwardRef((props: MapCardProps, ref: Ref<HTMLDivElement>
8282
dispatch(setOpenMap(true));
8383
}, [dispatch]);
8484

85-
const handleCloseMap = useCallback(() => {
86-
dispatch(setOpenMap(false));
87-
dispatch(resetMapEquipment());
88-
dispatch(setMapDataLoading(false));
89-
dispatch(setReloadMapNeeded(true));
90-
}, [dispatch]);
85+
const isInDrawingMode = useStateBoolean(false);
86+
const networkMapTabRef = useRef<NetworkMapTabRef>(null);
87+
88+
const handleCloseMap = useCallback(
89+
(event?: any, reason?: string) => {
90+
if (isInDrawingMode.value) {
91+
networkMapTabRef.current?.leaveDrawingMode();
92+
if (reason && reason === 'escapeKeyDown') {
93+
return; // Do not close the map but only the drawing mode
94+
}
95+
}
96+
dispatch(setOpenMap(false));
97+
dispatch(resetMapEquipment());
98+
dispatch(setMapDataLoading(false));
99+
dispatch(setReloadMapNeeded(true));
100+
},
101+
[dispatch, isInDrawingMode]
102+
);
91103

92104
if (!studyUuid || !currentNode || !currentRootNetworkUuid || !networkVisuParams) {
93105
return (
@@ -135,6 +147,7 @@ export const MapCard = forwardRef((props: MapCardProps, ref: Ref<HTMLDivElement>
135147
<FormattedMessage id="close" />
136148
</Fab>
137149
<NetworkMapTab
150+
ref={networkMapTabRef}
138151
studyUuid={studyUuid}
139152
visible={mapOpen}
140153
lineFullPath={networkVisuParams.mapParameters.lineFullPath}
@@ -148,7 +161,7 @@ export const MapCard = forwardRef((props: MapCardProps, ref: Ref<HTMLDivElement>
148161
}}
149162
onOpenNetworkAreaDiagram={onOpenNetworkAreaDiagram}
150163
onPolygonChanged={() => {}}
151-
onElementCreated={handleCloseMap}
164+
isInDrawingMode={isInDrawingMode}
152165
></NetworkMapTab>
153166
</Dialog>
154167
</Box>

src/components/network-modification.type.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,8 @@
77

88
// move here because of cyclic dependency between reducer and network-modification-tree-pane & network-modification-tree
99
export enum StudyDisplayMode {
10-
MAP = 'Map',
1110
TREE = 'Tree',
12-
HYBRID = 'Hybrid',
13-
DRAW = 'Draw',
1411
DIAGRAM_GRID_LAYOUT = 'DiagramGridLayout',
15-
DIAGRAM_GRID_LAYOUT_AND_TREE = 'DiagramGridLayoutAndTree',
1612
MODIFICATIONS = 'Modifications',
1713
EVENT_SCENARIO = 'EventScenario',
1814
}

src/components/network/guidance-popup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const styles = {
2929
card: (theme: Theme) => ({
3030
position: 'absolute',
3131
left: theme.spacing(1.25),
32-
bottom: theme.spacing(18.75),
32+
bottom: theme.spacing(10.75),
3333
maxWidth: theme.spacing(25),
3434
}),
3535
header: (theme: Theme) => ({

0 commit comments

Comments
 (0)