Skip to content

Commit

Permalink
partial fix
Browse files Browse the repository at this point in the history
  • Loading branch information
anisometropie committed Nov 15, 2024
1 parent cb99790 commit b2913ba
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ const useSetupItineraryForTrainUpdate = (
rolling_stock_length: rollingStock.length,
},
};
console.log('call useSetup');
const pathfindingResult = await postPathfindingBlocks(params).unwrap();
if (pathfindingResult.status !== 'success') {
return null;
Expand Down
27 changes: 25 additions & 2 deletions front/src/modules/pathfinding/hooks/usePathfinding.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { useState, useEffect, useReducer } from 'react';
import { useState, useEffect, useReducer, useRef } from 'react';

import { compact, isEqual, isObject } from 'lodash';
import { useTranslation } from 'react-i18next';
Expand Down Expand Up @@ -28,6 +28,7 @@ import type { PathStep } from 'reducers/osrdconf/types';
import { useAppDispatch } from 'store';
import { isEmptyArray } from 'utils/array';
import { castErrorToFailure } from 'utils/error';
import { usePrevious } from 'utils/hooks/state';

import useInfraStatus from './useInfraStatus';

Expand Down Expand Up @@ -113,6 +114,7 @@ export function reducer(state: PathfindingState, action: PathfindingAction): Pat
return {
...state,
error: '',
done: false,
mustBeLaunched: true,
missingParam: false,
};
Expand Down Expand Up @@ -156,6 +158,7 @@ export const usePathfinding = (
const origin = useSelector(getOrigin, isEqual);
const destination = useSelector(getDestination, isEqual);
const vias = useSelector(getVias(), isEqual);
const previousVias = usePrevious(vias);
const pathSteps = useSelector(getPathSteps);
const powerRestrictions = useSelector(getPowerRestriction);
const { infra, reloadCount, setIsInfraError } = useInfraStatus();
Expand Down Expand Up @@ -196,7 +199,27 @@ export const usePathfinding = (
};

useEffect(() => {
if (isPathfindingInitialized) {
// check if vias changes are only discrepancies at 5th+ decimal places
// pathfindingState.done is true right after pathfinding completes
// it becomes false once we change any parameter
// we can safely assume previousVias and vias have the same length and that the order is preserved
let skipDispatch = false;
if (pathfindingState.done && previousVias && previousVias.length === vias.length) {
skipDispatch = previousVias?.every(
(pVia, i) =>
console.log(
vias,
previousVias,
pVia.coordinates,
vias[i].coordinates,
pVia.coordinates[0] - vias[i].coordinates[0],
pVia.coordinates[1] - vias[i].coordinates[1]
) ||
(Math.abs(pVia.coordinates[0] - vias[i].coordinates[0]) <= 0.00001 &&
Math.abs(pVia.coordinates[1] - vias[i].coordinates[1]) <= 0.00001)
);
}
if (isPathfindingInitialized && !skipDispatch) {
pathfindingDispatch({
type: 'VIAS_CHANGED',
params: {
Expand Down

0 comments on commit b2913ba

Please sign in to comment.