From a08ddcc91d28afa33401a0a6e3393a40fec8f69d Mon Sep 17 00:00:00 2001 From: achour94 Date: Wed, 14 Jan 2026 15:46:50 +0100 Subject: [PATCH 1/9] Migrate twt creation Signed-off-by: achour94 --- ...transformer-characteristics-pane-utils.ts} | 19 +- ...ings-transformer-characteristics-pane.tsx} | 13 +- ...er-creation-characteristics-pane-utils.ts} | 4 + ...sformer-creation-characteristics-pane.tsx} | 18 +- ...gs-transformer-creation-dialog-header.tsx} | 3 +- ...ings-transformer-creation-dialog-tabs.tsx} | 17 +- ...-windings-transformer-creation-dialog.tsx} | 276 +++++++++++------- .../two-windings-transformer.types.ts | 71 ++++- src/services/study/network-modifications.ts | 3 +- 9 files changed, 298 insertions(+), 126 deletions(-) rename src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/{two-windings-transformer-characteristics-pane-utils.js => two-windings-transformer-characteristics-pane-utils.ts} (80%) rename src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/{two-windings-transformer-characteristics-pane.jsx => two-windings-transformer-characteristics-pane.tsx} (90%) rename src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/{two-windings-transformer-creation-characteristics-pane-utils.js => two-windings-transformer-creation-characteristics-pane-utils.ts} (92%) rename src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/{two-windings-transformer-creation-characteristics-pane.jsx => two-windings-transformer-creation-characteristics-pane.tsx} (88%) rename src/components/dialogs/network-modifications/two-windings-transformer/creation/{two-windings-transformer-creation-dialog-header.jsx => two-windings-transformer-creation-dialog-header.tsx} (93%) rename src/components/dialogs/network-modifications/two-windings-transformer/creation/{two-windings-transformer-creation-dialog-tabs.jsx => two-windings-transformer-creation-dialog-tabs.tsx} (83%) rename src/components/dialogs/network-modifications/two-windings-transformer/creation/{two-windings-transformer-creation-dialog.jsx => two-windings-transformer-creation-dialog.tsx} (77%) diff --git a/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.js b/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.ts similarity index 80% rename from src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.js rename to src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.ts index 8b60a92bbe..b5d3c9a329 100644 --- a/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.js +++ b/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane-utils.ts @@ -8,7 +8,20 @@ import { CHARACTERISTICS, G, B, RATED_S, RATED_U1, RATED_U2, R, X } from 'components/utils/field-constants'; import yup from 'components/utils/yup-config'; -const characteristicsValidationSchema = (isModification, additionalFields) => ({ +export interface CharacteristicsValues { + [R]?: number | null; + [X]?: number | null; + [G]?: number | null; + [B]?: number | null; + [RATED_S]?: number | null; + [RATED_U1]?: number | null; + [RATED_U2]?: number | null; +} + +type AdditionalValidationFields = Record; +type AdditionalDataFields = Record; + +const characteristicsValidationSchema = (isModification: boolean, additionalFields: AdditionalValidationFields) => ({ [CHARACTERISTICS]: yup.object().shape({ [R]: isModification ? yup.number().nullable().min(0, 'mustBeGreaterOrEqualToZero') @@ -33,7 +46,7 @@ export const getCharacteristicsValidationSchema = (isModification = false, addit return characteristicsValidationSchema(isModification, additionalFields); }; -const characteristicsEmptyFormData = (additionalFields) => ({ +const characteristicsEmptyFormData = (additionalFields: AdditionalDataFields) => ({ [CHARACTERISTICS]: { [R]: null, [X]: null, @@ -51,7 +64,7 @@ export const getCharacteristicsEmptyFormData = (additionalFields = {}) => { }; export const getCharacteristicsFormData = ( - { r = null, x = null, g = null, b = null, ratedS = null, ratedU1 = null, ratedU2 = null }, + { r = null, x = null, g = null, b = null, ratedS = null, ratedU1 = null, ratedU2 = null }: CharacteristicsValues, additionalFields = {} ) => { return { diff --git a/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.jsx b/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.tsx similarity index 90% rename from src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.jsx rename to src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.tsx index 7ad2e2f2c2..9a0364d930 100644 --- a/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.jsx +++ b/src/components/dialogs/network-modifications/two-windings-transformer/characteristics-pane/two-windings-transformer-characteristics-pane.tsx @@ -13,8 +13,19 @@ import { B, CHARACTERISTICS, G, R, RATED_S, RATED_U1, RATED_U2, X } from 'compon import PropertiesForm from '../../common/properties/properties-form'; import GridSection from '../../../commons/grid-section'; import GridItem from '../../../commons/grid-item'; +import { TwoWindingsTransformerData } from '../two-windings-transformer.types'; -const TwoWindingsTransformerCharacteristicsPane = ({ id = CHARACTERISTICS, twtToModify, isModification = false }) => { +export interface TwoWindingsTransformerCharacteristicsPaneProps { + id?: string; + twtToModify?: TwoWindingsTransformerData | null; + isModification?: boolean; +} + +const TwoWindingsTransformerCharacteristicsPane = ({ + id = CHARACTERISTICS, + twtToModify, + isModification = false, +}: TwoWindingsTransformerCharacteristicsPaneProps) => { const width = isModification ? 12 : 8; const seriesResistanceField = ( diff --git a/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.js b/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.ts similarity index 92% rename from src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.js rename to src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.ts index d97ba4c2f4..5ae1688ea8 100644 --- a/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.js +++ b/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane-utils.ts @@ -11,6 +11,7 @@ import { getConnectivityWithPositionValidationSchema, } from '../../../../connectivity/connectivity-form-utils'; import { + CharacteristicsValues, getCharacteristicsEmptyFormData, getCharacteristicsFormData, getCharacteristicsValidationSchema, @@ -46,6 +47,9 @@ export const getTwoWindingsTransformerFormData = ({ ratedU2 = null, connectivity1 = null, connectivity2 = null, +}: CharacteristicsValues & { + connectivity1?: Record | null; + connectivity2?: Record | null; }) => getCharacteristicsFormData( { diff --git a/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.jsx b/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.tsx similarity index 88% rename from src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.jsx rename to src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.tsx index 218dc2fc5e..efd7dbc4db 100644 --- a/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.jsx +++ b/src/components/dialogs/network-modifications/two-windings-transformer/creation/characteristics-pane/two-windings-transformer-creation-characteristics-pane.tsx @@ -15,7 +15,9 @@ import useVoltageLevelsListInfos from '../../../../../../hooks/use-voltage-level import GridSection from '../../../../commons/grid-section'; import GridItem from '../../../../commons/grid-item'; import { TwoWindingsTransformerCreationDialogTab } from '../../two-windings-transformer-utils'; -import { LimitsPane } from '../../../../limits/limits-pane.tsx'; +import { LimitsPane } from '../../../../limits/limits-pane'; +import { UUID } from 'node:crypto'; +import { CurrentTreeNode } from 'components/graph/tree-node.type'; const styles = { h3: { @@ -25,13 +27,21 @@ const styles = { }, }; +export interface TwoWindingsTransformerCreationCharacteristicsPaneProps { + id?: string; + studyUuid: UUID; + currentNode: CurrentTreeNode; + currentRootNetworkUuid: UUID; + tabIndex: number; +} + const TwoWindingsTransformerCreationCharacteristicsPane = ({ id = CHARACTERISTICS, studyUuid, currentNode, currentRootNetworkUuid, tabIndex, -}) => { +}: TwoWindingsTransformerCreationCharacteristicsPaneProps) => { const voltageLevelOptions = useVoltageLevelsListInfos(studyUuid, currentNode?.id, currentRootNetworkUuid); const connectivity1Field = (