Skip to content

Commit 6c109fc

Browse files
committed
front: fix infra lock status
1 parent 7c2a993 commit 6c109fc

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

front/src/applications/editor/Editor.tsx

+16-3
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ import { useSwitchTypes } from 'applications/editor/tools/switchEdition/types';
1919
import type { switchProps } from 'applications/editor/tools/switchProps';
2020
import type { CommonToolState } from 'applications/editor/tools/types';
2121
import { centerMapOnObject, selectEntities } from 'applications/editor/tools/utils';
22-
import type { ObjectType } from 'common/api/osrdEditoastApi';
22+
import { osrdEditoastApi, type ObjectType } from 'common/api/osrdEditoastApi';
2323
import { useModal } from 'common/BootstrapSNCF/ModalSNCF';
2424
import { LoaderState } from 'common/Loaders';
2525
import MapButtons from 'common/Map/Buttons/MapButtons';
2626
import MapSearch from 'common/Map/Search/MapSearch';
27-
import { useInfraID, useOsrdActions } from 'common/osrdContext';
27+
import { useInfraActions, useInfraID, useOsrdActions } from 'common/osrdContext';
2828
import Tipped from 'common/Tipped';
2929
import type { EditorSliceActions } from 'reducers/editor';
3030
import { getEditorState, getInfraLockStatus } from 'reducers/editor/selectors';
@@ -49,8 +49,8 @@ const Editor = () => {
4949
const { urlInfra } = useParams();
5050
const infraID = useInfraID();
5151
const [searchParams, setSearchParams] = useSearchParams();
52-
const isLocked = useSelector(getInfraLockStatus);
5352
const isLoading = useSelector(getIsLoading);
53+
const isLocked = useSelector(getInfraLockStatus);
5454
const editorState = useSelector(getEditorState);
5555
const switchTypes = useSwitchTypes(infraID);
5656
/* eslint-disable @typescript-eslint/no-explicit-any */
@@ -65,6 +65,13 @@ const Editor = () => {
6565
}, [setRenderingFingerprint]);
6666

6767
const [isFormSubmited, setIsFormSubmited] = useState(false);
68+
const { data: infra } = osrdEditoastApi.endpoints.getInfraById.useQuery(
69+
{ id: infraID as number },
70+
{
71+
skip: !infraID,
72+
}
73+
);
74+
const { updateInfra } = useInfraActions();
6875

6976
const switchTool = useCallback(
7077
({ toolType, toolState }: switchProps) => {
@@ -312,6 +319,12 @@ const Editor = () => {
312319
}
313320
}, [toolAndState.state.entity?.properties.id]);
314321

322+
useEffect(() => {
323+
if (infra) {
324+
dispatch(updateInfra(infra));
325+
}
326+
}, [infra]);
327+
315328
return (
316329
<EditorContext.Provider value={extendedContext as EditorContextType<unknown>}>
317330
<main

front/src/applications/editor/tools/rangeEdition/tool-factory.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ function getRangeEditionTool<T extends EditorRange>({
9797
id: `save-${objectTypeAction}`,
9898
icon: AiFillSave,
9999
labelTranslationKey: `Editor.tools.${objectTypeEdition}-edition.actions.save-${objectTypeAction}`,
100-
isDisabled({ isLoading, state }) {
101-
if (isLoading) return true;
100+
isDisabled({ isLoading, isInfraLocked, state }) {
101+
if (isLoading || isInfraLocked) return true;
102102
if (canSave) return !canSave(state);
103103
return false;
104104
},

front/src/applications/editor/tools/switchEdition/tool.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const SwitchEditionTool: Tool<SwitchEditionState> = {
4949
id: 'save-switch',
5050
icon: AiFillSave,
5151
labelTranslationKey: 'Editor.tools.switch-edition.actions.save-switch',
52-
isDisabled({ isLoading, state }) {
52+
isDisabled({ isLoading, isInfraLocked, state }) {
5353
const portWithTracks = filter(state.entity?.properties?.ports ?? {}, (p) => !!p?.track);
5454
const portsKeys = Object.keys(state.entity?.properties?.ports ?? {});
5555
const detectedDuplicates = filter(
@@ -61,6 +61,7 @@ const SwitchEditionTool: Tool<SwitchEditionState> = {
6161
portWithTracks.length !== portsKeys.length ||
6262
!!detectedDuplicates.length ||
6363
isLoading ||
64+
isInfraLocked ||
6465
false
6566
);
6667
},

0 commit comments

Comments
 (0)