From 673ab84604cd6bb9ac01fca574a14dcf816b7e6b Mon Sep 17 00:00:00 2001 From: Alice Khoudli Date: Wed, 5 Feb 2025 18:28:55 +0100 Subject: [PATCH] front: simplify rolling stock form type Signed-off-by: Alice Khoudli --- front/src/modules/rollingStock/helpers/utils.ts | 15 +++++++-------- front/src/modules/rollingStock/types.ts | 11 +---------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/front/src/modules/rollingStock/helpers/utils.ts b/front/src/modules/rollingStock/helpers/utils.ts index c969ebc7236..c156a59cc64 100644 --- a/front/src/modules/rollingStock/helpers/utils.ts +++ b/front/src/modules/rollingStock/helpers/utils.ts @@ -236,18 +236,17 @@ export const checkRollingStockFormValidity = ( return acc; }, {}); const invalidFields = Object.keys(RS_REQUIRED_FIELDS).filter((field) => { + // We consider fields invalid if they are required and either absent or nullish const conditionForFieldBeingRequired = conditions[field]; - const paramValue = rollingStockForm[field]; - const isFieldInvalid = - !has(rollingStockForm, field) || - isNil(isMultiUnitsParam(paramValue) ? paramValue.value : paramValue); const isRequired = conditionForFieldBeingRequired ? conditionForFieldBeingRequired(effortCurves) : true; - if (isRequired) { - return isFieldInvalid; - } - return false; + if (!isRequired) return false; + + if (!has(rollingStockForm, field)) return true; + + const paramValue = rollingStockForm[field as keyof RollingStockParametersValues]; + return isNil(isMultiUnitsParam(paramValue) ? paramValue.value : paramValue); }); let invalidEffortCurves: string[] = []; diff --git a/front/src/modules/rollingStock/types.ts b/front/src/modules/rollingStock/types.ts index c2552eeea0a..22c64102d43 100644 --- a/front/src/modules/rollingStock/types.ts +++ b/front/src/modules/rollingStock/types.ts @@ -45,15 +45,6 @@ export type RollingStockParametersValidValues = { }; export type RollingStockParametersValues = { - // TODO: remove this line in the type - [key: string]: - | string - | number - | null - | RollingStock['power_restrictions'] - | undefined - | string[] - | MultiUnitsParameter; railjsonVersion: string; name: string; detail: string; @@ -102,7 +93,7 @@ export type MultiUnit = | 'kN/(km/h)²/t'; export type SchemaProperty = { - title: string; + title: keyof RollingStockParametersValues; type: string; side: string; format?: string;