Skip to content

Commit

Permalink
fixup! fixup! front: editor: fix route tool selection
Browse files Browse the repository at this point in the history
  • Loading branch information
SarahBellaha committed Nov 15, 2023
1 parent ee472d6 commit c7026b0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
import Select from 'react-select';
import React, { FC, useContext, useMemo, useState } from 'react';
import React, { FC, useContext, useMemo } from 'react';
import { BsArrowBarRight, BsBoxArrowInRight } from 'react-icons/bs';
import { HiSwitchVertical } from 'react-icons/hi';
import { FaFlagCheckered } from 'react-icons/fa';
import { useTranslation } from 'react-i18next';
import { useDispatch, useSelector } from 'react-redux';

import { getInfraID } from 'reducers/osrdconf/selectors';
import {
BufferStopEntity,
DetectorEntity,
DIRECTIONS,
EndPoint,
WayPoint,
WayPointEntity,
} from 'types';
import { BufferStopEntity, DetectorEntity, DIRECTIONS, WayPoint, WayPointEntity } from 'types';
import EditorContext from 'applications/editor/context';
import { getEntity } from 'applications/editor/data/api';
import EntitySumUp from 'applications/editor/components/EntitySumUp';
Expand Down Expand Up @@ -42,16 +35,12 @@ export const EditEndpoints: FC<{ state: RouteState; onChange: (newState: RouteSt
[options, entryPointDirection]
);

const [selectedEndpoint, setSelectedEndpoint] = useState<EndPoint | null>(null);

return (
<>
<h5 className="mt-4">
<BsArrowBarRight /> {t('Editor.tools.routes-edition.start')}
</h5>
<WayPointInput
selectedEndpoint={selectedEndpoint}
setSelectedEndpoint={setSelectedEndpoint}
endPoint="BEGIN"
wayPoint={entryPoint}
onChange={(wayPoint) => onChange({ ...state, entryPoint: wayPoint })}
Expand Down Expand Up @@ -92,8 +81,6 @@ export const EditEndpoints: FC<{ state: RouteState; onChange: (newState: RouteSt
<FaFlagCheckered /> {t('Editor.tools.routes-edition.end')}
</h5>
<WayPointInput
selectedEndpoint={selectedEndpoint}
setSelectedEndpoint={setSelectedEndpoint}
endPoint="END"
wayPoint={exitPoint}
onChange={(wayPoint) => onChange({ ...state, exitPoint: wayPoint })}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@ import { ExtendedEditorContextType } from 'applications/editor/tools/editorConte
import { EndPoint, WayPoint, WayPointEntity } from 'types';

const WayPointInput: FC<{
selectedEndpoint: EndPoint | null;
setSelectedEndpoint: (endPoint: EndPoint | null) => void;
endPoint: EndPoint;
wayPoint: WayPoint | null;
onChange: (newWayPoint: WayPoint & { position: Position }) => void;
}> = ({ selectedEndpoint, setSelectedEndpoint, endPoint, wayPoint, onChange }) => {
}> = ({ endPoint, wayPoint, onChange }) => {
const dispatch = useDispatch();
const { state, setState } = useContext(
EditorContext
Expand All @@ -30,7 +28,13 @@ const WayPointInput: FC<{
{ type: 'data'; entity: WayPointEntity } | { type: 'loading' } | { type: 'empty' }
>({ type: 'empty' });

const isPicking = selectedEndpoint === endPoint;
const isPicking =
state.extremityEditionState.type === 'selection' &&
state.extremityEditionState.extremity === endPoint;
const isDisabled =
state.extremityEditionState.type === 'selection' &&
!isPicking &&
state.extremityEditionState.extremity !== endPoint;

const startPickingWayPoint = useCallback(() => {
// Cancel current selection:
Expand All @@ -43,7 +47,7 @@ const WayPointInput: FC<{
});
}
// Start selecting:
else if (selectedEndpoint === null) {
else {
setState({
...state,
extremityEditionState: {
Expand All @@ -57,12 +61,11 @@ const WayPointInput: FC<{
id: newWayPoint.properties.id,
position: newWayPoint.geometry.coordinates,
});
setSelectedEndpoint(null);
},
},
});
}
}, [endPoint, selectedEndpoint, onChange, setState, state]);
}, [endPoint, isPicking, onChange, setState, state]);

useEffect(() => {
if (
Expand Down Expand Up @@ -97,11 +100,8 @@ const WayPointInput: FC<{
<button
type="button"
className="btn btn-primary px-3"
onClick={() => {
setSelectedEndpoint(selectedEndpoint === null ? endPoint : null);
startPickingWayPoint();
}}
disabled={selectedEndpoint !== null && !isPicking}
onClick={startPickingWayPoint}
disabled={isDisabled}
>
{isPicking ? <FaTimesCircle /> : <FaMapMarkedAlt />}
</button>
Expand Down

0 comments on commit c7026b0

Please sign in to comment.