diff --git a/front/src/applications/stdcm/hooks/useStdcm.ts b/front/src/applications/stdcm/hooks/useStdcm.ts index 97a5ee24506..251a21cc73c 100644 --- a/front/src/applications/stdcm/hooks/useStdcm.ts +++ b/front/src/applications/stdcm/hooks/useStdcm.ts @@ -20,7 +20,7 @@ import { import { useOsrdConfSelectors } from 'common/osrdContext'; import { useStoreDataForSpeedLimitByTagSelector } from 'common/SpeedLimitByTagSelector/useStoreDataForSpeedLimitByTagSelector'; import { setFailure } from 'reducers/main'; -import type { OsrdStdcmConfState } from 'reducers/osrdconf/types'; +import { getStdcmConf } from 'reducers/osrdconf/stdcmConf/selectors'; import { updateSelectedTrainId } from 'reducers/simulationResults'; import { useAppDispatch } from 'store'; import { castErrorToFailure } from 'utils/error'; @@ -49,8 +49,8 @@ const useStdcm = ({ const dispatch = useAppDispatch(); const { t } = useTranslation(['translation', 'stdcm']); - const { getConf, getTimetableID } = useOsrdConfSelectors(); - const osrdconf = useSelector(getConf) as OsrdStdcmConfState; + const { getTimetableID } = useOsrdConfSelectors(); + const osrdconf = useSelector(getStdcmConf); const timetableId = useSelector(getTimetableID); const requestPromise = useRef>(); diff --git a/front/src/modules/trainschedule/components/ManageTrainSchedule/AddTrainScheduleButton.tsx b/front/src/modules/trainschedule/components/ManageTrainSchedule/AddTrainScheduleButton.tsx index ce9c4cb85bc..c2e8acfb3e3 100644 --- a/front/src/modules/trainschedule/components/ManageTrainSchedule/AddTrainScheduleButton.tsx +++ b/front/src/modules/trainschedule/components/ManageTrainSchedule/AddTrainScheduleButton.tsx @@ -8,10 +8,10 @@ import type { TrainScheduleBase, TrainScheduleResult, } from 'common/api/osrdEditoastApi'; -import { useOsrdConfSelectors } from 'common/osrdContext'; import { useStoreDataForRollingStockSelector } from 'modules/rollingStock/components/RollingStockSelector/useStoreDataForRollingStockSelector'; import trainNameWithNum from 'modules/trainschedule/components/ManageTrainSchedule/helpers/trainNameHelper'; import { setFailure, setSuccess } from 'reducers/main'; +import { getOperationalStudiesConf } from 'reducers/osrdconf/operationalStudiesConf/selectors'; import { useAppDispatch } from 'store'; import { isoDateToMs, isoDateWithTimezoneToSec } from 'utils/date'; import { castErrorToFailure } from 'utils/error'; @@ -38,8 +38,7 @@ const AddTrainScheduleButton = ({ const dispatch = useAppDispatch(); const { t } = useTranslation(['operationalStudies/manageTrainSchedule']); - const { getConf } = useOsrdConfSelectors(); - const simulationConf = useSelector(getConf); + const simulationConf = useSelector(getOperationalStudiesConf); // TODO TS2 : remove this when rollingStockName will replace rollingStockId in the store const { rollingStock } = useStoreDataForRollingStockSelector(); diff --git a/front/src/modules/trainschedule/components/ManageTrainSchedule/hooks/useUpdateTrainSchedule.ts b/front/src/modules/trainschedule/components/ManageTrainSchedule/hooks/useUpdateTrainSchedule.ts index 99d58445d1b..00569b74bb8 100644 --- a/front/src/modules/trainschedule/components/ManageTrainSchedule/hooks/useUpdateTrainSchedule.ts +++ b/front/src/modules/trainschedule/components/ManageTrainSchedule/hooks/useUpdateTrainSchedule.ts @@ -7,6 +7,7 @@ import { useOsrdConfSelectors } from 'common/osrdContext'; import { useStoreDataForRollingStockSelector } from 'modules/rollingStock/components/RollingStockSelector/useStoreDataForRollingStockSelector'; import checkCurrentConfig from 'modules/trainschedule/components/ManageTrainSchedule/helpers/checkCurrentConfig'; import { setFailure, setSuccess } from 'reducers/main'; +import { getOperationalStudiesConf } from 'reducers/osrdconf/operationalStudiesConf/selectors'; import { updateSelectedTrainId } from 'reducers/simulationResults'; import { useAppDispatch } from 'store'; import { formatToIsoDate } from 'utils/date'; @@ -25,9 +26,9 @@ const useUpdateTrainSchedule = ( const { t } = useTranslation(['operationalStudies/manageTrainSchedule']); const [putTrainScheduleById] = osrdEditoastApi.endpoints.putTrainScheduleById.useMutation(); const dispatch = useAppDispatch(); - const { getConf, getName, getStartTime } = useOsrdConfSelectors(); + const { getName, getStartTime } = useOsrdConfSelectors(); const confName = useSelector(getName); - const simulationConf = useSelector(getConf); + const simulationConf = useSelector(getOperationalStudiesConf); const startTime = useSelector(getStartTime); const { rollingStock } = useStoreDataForRollingStockSelector(); diff --git a/front/src/reducers/osrdconf/operationalStudiesConf/selectors.ts b/front/src/reducers/osrdconf/operationalStudiesConf/selectors.ts index beb12ced5d5..3d9b81fd652 100644 --- a/front/src/reducers/osrdconf/operationalStudiesConf/selectors.ts +++ b/front/src/reducers/osrdconf/operationalStudiesConf/selectors.ts @@ -1,20 +1,21 @@ -import { - operationalStudiesConfSlice, - type OperationalStudiesConfState, -} from 'reducers/osrdconf/operationalStudiesConf'; +import type { RootState } from 'reducers'; +import { operationalStudiesConfSlice } from 'reducers/osrdconf/operationalStudiesConf'; import buildCommonConfSelectors from 'reducers/osrdconf/osrdConfCommon/selectors'; const buildOperationalStudiesConfSelectors = () => { - const commonConfSelectors = buildCommonConfSelectors( - operationalStudiesConfSlice - ); + const commonConfSelectors = buildCommonConfSelectors(operationalStudiesConfSlice); + const getOperationalStudiesConf = (state: RootState) => state[operationalStudiesConfSlice.name]; + return { ...commonConfSelectors, + getOperationalStudiesConf, }; }; const selectors = buildOperationalStudiesConfSelectors(); +export const { getOperationalStudiesConf } = selectors; + export type OperationalStudiesConfSelectors = typeof selectors; export default selectors; diff --git a/front/src/reducers/osrdconf/osrdConfCommon/selectors.ts b/front/src/reducers/osrdconf/osrdConfCommon/selectors.ts index 028ff6bd59b..0822931d92d 100644 --- a/front/src/reducers/osrdconf/osrdConfCommon/selectors.ts +++ b/front/src/reducers/osrdconf/osrdConfCommon/selectors.ts @@ -5,14 +5,10 @@ import type { RootState } from 'reducers'; import buildInfraStateSelectors from 'reducers/infra/selectors'; import type { OperationalStudiesConfSlice } from 'reducers/osrdconf/operationalStudiesConf'; import type { StdcmConfSlice } from 'reducers/osrdconf/stdcmConf'; -import type { OsrdConfState } from 'reducers/osrdconf/types'; import { makeSubSelector } from 'utils/selectors'; -const buildCommonConfSelectors = ( - slice: OperationalStudiesConfSlice | StdcmConfSlice -) => { - const getConf = (state: RootState) => state[slice.name] as ConfState; - const makeOsrdConfSelector = makeSubSelector(getConf); +const buildCommonConfSelectors = (slice: OperationalStudiesConfSlice | StdcmConfSlice) => { + const makeOsrdConfSelector = makeSubSelector((state: RootState) => state[slice.name]); const getPathSteps = makeOsrdConfSelector('pathSteps'); @@ -26,7 +22,6 @@ const buildCommonConfSelectors = ( return { ...buildInfraStateSelectors(slice), - getConf, getConstraintDistribution: makeOsrdConfSelector('constraintDistribution'), getName: makeOsrdConfSelector('name'), getTrainCount: makeOsrdConfSelector('trainCount'), diff --git a/front/src/reducers/osrdconf/stdcmConf/selectors.ts b/front/src/reducers/osrdconf/stdcmConf/selectors.ts index d3909c675cb..35f3b9c113a 100644 --- a/front/src/reducers/osrdconf/stdcmConf/selectors.ts +++ b/front/src/reducers/osrdconf/stdcmConf/selectors.ts @@ -5,13 +5,16 @@ import type { OsrdStdcmConfState } from 'reducers/osrdconf/types'; import { makeSubSelector } from 'utils/selectors'; const buildStdcmConfSelectors = () => { - const commonConfSelectors = buildCommonConfSelectors(stdcmConfSlice); - const makeOsrdConfSelector = makeSubSelector(commonConfSelectors.getConf); + const commonConfSelectors = buildCommonConfSelectors(stdcmConfSlice); + + const getStdcmConf = (state: RootState) => state[stdcmConfSlice.name]; + const makeOsrdConfSelector = makeSubSelector(getStdcmConf); const getStdcmPathSteps = makeOsrdConfSelector('stdcmPathSteps'); return { ...commonConfSelectors, + getStdcmConf, getStandardStdcmAllowance: makeOsrdConfSelector('standardStdcmAllowance'), getTotalMass: makeOsrdConfSelector('totalMass'), getTotalLength: makeOsrdConfSelector('totalLength'), @@ -40,6 +43,8 @@ const buildStdcmConfSelectors = () => { const selectors = buildStdcmConfSelectors(); +export const { getStdcmConf } = selectors; + export type StdcmConfSelectors = typeof selectors; export default selectors; diff --git a/front/src/reducers/osrdconf/types.ts b/front/src/reducers/osrdconf/types.ts index cf592299847..8bec928808a 100644 --- a/front/src/reducers/osrdconf/types.ts +++ b/front/src/reducers/osrdconf/types.ts @@ -49,7 +49,7 @@ export interface StandardAllowance { value?: number; } -export interface OsrdStdcmConfState extends OsrdConfState { +export type OsrdStdcmConfState = OsrdConfState & { stdcmPathSteps: StdcmPathStep[]; standardStdcmAllowance?: StandardAllowance; totalMass?: number; @@ -57,7 +57,7 @@ export interface OsrdStdcmConfState extends OsrdConfState { maxSpeed?: number; towedRollingStockID?: number; linkedTrains: LinkedTrains; -} +}; export type PathStep = PathItemLocation & { id: string;