From 384dceac180177a90c481fed58620e5e5ca8dc4b Mon Sep 17 00:00:00 2001 From: Achraf Mohyeddine Date: Fri, 3 Jan 2025 00:59:51 +0100 Subject: [PATCH] front: filter fetched towed rolling stocks to include only allowed values Signed-off-by: Achraf Mohyeddine --- .../stdcm/components/StdcmForm/StdcmConfig.tsx | 6 +++++- .../components/StdcmForm/StdcmConsist.tsx | 12 +++++++++--- .../rollingStock/freightRollingStocks.ts | 18 ++++++++++++++++-- .../hooks/useFilterRollingStock.ts | 2 +- .../hooks/useFilterTowedRollingStock.ts | 16 +++++++++++++--- .../towedRollingStock/towedRollingStock.json | 2 +- 6 files changed, 45 insertions(+), 11 deletions(-) diff --git a/front/src/applications/stdcm/components/StdcmForm/StdcmConfig.tsx b/front/src/applications/stdcm/components/StdcmForm/StdcmConfig.tsx index 8f57d8b0011..27f055f9c01 100644 --- a/front/src/applications/stdcm/components/StdcmForm/StdcmConfig.tsx +++ b/front/src/applications/stdcm/components/StdcmForm/StdcmConfig.tsx @@ -189,7 +189,11 @@ const StdcmConfig = ({ />
- +
diff --git a/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx b/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx index 96edc3dcc30..d9c3156d179 100644 --- a/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx +++ b/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx @@ -4,6 +4,7 @@ import { Input, ComboBox } from '@osrd-project/ui-core'; import { useTranslation } from 'react-i18next'; import useStdcmTowedRollingStock from 'applications/stdcm/hooks/useStdcmTowedRollingStock'; +import type { ConsistErrors } from 'applications/stdcm/types'; import { CONSIST_MAX_SPEED_MIN, CONSIST_TOTAL_LENGTH_MAX, @@ -23,7 +24,6 @@ import { kgToT, kmhToMs, msToKmh } from 'utils/physics'; import StdcmCard from './StdcmCard'; import useStdcmConsist from '../../hooks/useStdcmConsist'; -import type { StdcmConfigCardProps } from '../../types'; const ConsistCardTitle = ({ rollingStock, @@ -39,7 +39,13 @@ const ConsistCardTitle = ({ ); }; -const StdcmConsist = ({ consistErrors = {}, disabled = false }: StdcmConfigCardProps) => { +export type StdcmConsistProps = { + isDebugMode: boolean; + disabled?: boolean; + consistErrors?: ConsistErrors; +}; + +const StdcmConsist = ({ isDebugMode, consistErrors = {}, disabled = false }: StdcmConsistProps) => { const { t } = useTranslation('stdcm'); const { speedLimitByTag, speedLimitsByTags, dispatchUpdateSpeedLimitByTag } = useStoreDataForSpeedLimitByTagSelector({ isStdcm: true }); @@ -69,7 +75,7 @@ const StdcmConsist = ({ consistErrors = {}, disabled = false }: StdcmConfigCardP searchTowedRollingStock, searchTowedRollingStockById, filters: towedRsFilters, - } = useFilterTowedRollingStock(); + } = useFilterTowedRollingStock({ isDebugMode }); useEffect(() => { if (towedRollingStock) { diff --git a/front/src/assets/rollingStock/freightRollingStocks.ts b/front/src/assets/rollingStock/freightRollingStocks.ts index 0adfe8807b0..b9fac74b9f7 100644 --- a/front/src/assets/rollingStock/freightRollingStocks.ts +++ b/front/src/assets/rollingStock/freightRollingStocks.ts @@ -1,4 +1,4 @@ -const FREIGHT_ROLLING_STOCKS = [ +export const FREIGHT_ROLLING_STOCKS = [ '7200GH', '15000', '22200G', @@ -110,4 +110,18 @@ const FREIGHT_ROLLING_STOCKS = [ 'electric_rolling_stock_test_e2e', ]; -export default FREIGHT_ROLLING_STOCKS; +export const ALLOWED_TOWED_ROLLING_STOCKS = [ + 'AFAMOD', + 'AFAMOD2', + 'MA', + 'MAL100', + 'MALOUR', + 'MAVIDE', + 'ME100', + 'ME120', + 'ME140', + 'ME200SER', + 'MEPA', + 'TRAINLOC', + 'TOWED-TEST-E2E', +]; diff --git a/front/src/modules/rollingStock/hooks/useFilterRollingStock.ts b/front/src/modules/rollingStock/hooks/useFilterRollingStock.ts index 8db17146fb1..034b8fe4bd0 100644 --- a/front/src/modules/rollingStock/hooks/useFilterRollingStock.ts +++ b/front/src/modules/rollingStock/hooks/useFilterRollingStock.ts @@ -1,6 +1,6 @@ import { useState, useEffect, useMemo } from 'react'; -import FREIGHT_ROLLING_STOCKS from 'assets/rollingStock/freightRollingStocks'; +import { FREIGHT_ROLLING_STOCKS } from 'assets/rollingStock/freightRollingStocks'; import { osrdEditoastApi } from 'common/api/osrdEditoastApi'; import type { LightRollingStock, LightRollingStockWithLiveries } from 'common/api/osrdEditoastApi'; import { setFailure } from 'reducers/main'; diff --git a/front/src/modules/towedRollingStock/hooks/useFilterTowedRollingStock.ts b/front/src/modules/towedRollingStock/hooks/useFilterTowedRollingStock.ts index c077b6dde6b..f8e54c50287 100644 --- a/front/src/modules/towedRollingStock/hooks/useFilterTowedRollingStock.ts +++ b/front/src/modules/towedRollingStock/hooks/useFilterTowedRollingStock.ts @@ -1,7 +1,8 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { isEqual } from 'lodash'; +import { ALLOWED_TOWED_ROLLING_STOCKS } from 'assets/rollingStock/freightRollingStocks'; import { osrdEditoastApi, type TowedRollingStock } from 'common/api/osrdEditoastApi'; import { setFailure } from 'reducers/main'; import { useAppDispatch } from 'store'; @@ -32,7 +33,7 @@ function filterTowedRollingStocks( }); } -const useFilterTowedRollingStock = () => { +const useFilterTowedRollingStock = ({ isDebugMode }: { isDebugMode: boolean }) => { const dispatch = useAppDispatch(); const [filters, setFilters] = useState({ text: '' }); const [filteredTowedRollingStockList, setFilteredTowedRollingStockList] = useState< @@ -40,7 +41,7 @@ const useFilterTowedRollingStock = () => { >([]); const { - data: { results: allTowedRollingStocks } = { results: [] }, + data: { results: fetchedTowedRollingStocks } = { results: [] }, isSuccess, isError, error, @@ -48,6 +49,15 @@ const useFilterTowedRollingStock = () => { pageSize: 50, }); + const allTowedRollingStocks = useMemo(() => { + if (!isDebugMode) { + return fetchedTowedRollingStocks.filter((stock) => + ALLOWED_TOWED_ROLLING_STOCKS.includes(stock.name) + ); + } + return fetchedTowedRollingStocks; + }, [fetchedTowedRollingStocks, isDebugMode]); + const searchTowedRollingStock = (value: string) => { setFilters({ id: undefined, text: value }); }; diff --git a/front/tests/assets/stdcm/towedRollingStock/towedRollingStock.json b/front/tests/assets/stdcm/towedRollingStock/towedRollingStock.json index 128a77d916d..afd92e4c89d 100644 --- a/front/tests/assets/stdcm/towedRollingStock/towedRollingStock.json +++ b/front/tests/assets/stdcm/towedRollingStock/towedRollingStock.json @@ -1,5 +1,5 @@ { - "name": "Towed-test-e2e", + "name": "TOWED-TEST-E2E", "label": "", "railjson_version": "3.2", "locked": true,