From e58cfe11bc1031757a2e282433a8cf2409e71381 Mon Sep 17 00:00:00 2001 From: achour94 Date: Mon, 23 Feb 2026 13:38:06 +0100 Subject: [PATCH 1/5] Move substation modification form to commons-ui --- .../dialogs/limits/limits-pane-utils.ts | 11 ++- .../battery-modification-dialog.tsx | 2 +- .../generator-modification-dialog.tsx | 2 +- .../hvdc-line/lcc/common/lcc-utils.ts | 2 +- .../modification/lcc-modification-dialog.tsx | 2 +- .../converter-station-utils.tsx | 13 ++-- .../limit-sets-tabular-modification-utils.ts | 3 +- .../modification/line-modification-dialog.tsx | 2 +- .../modification/load-modification.type.ts | 3 +- .../shunt-compensator-modification-dialog.tsx | 2 +- .../substation-modification-dialog.tsx | 65 +++++----------- .../substation-modification-form.tsx | 74 ------------------- .../tabular/tabular-modification-utils.ts | 2 +- ...ndings-transformer-modification-dialog.tsx | 2 +- src/components/utils/utils.ts | 12 +-- src/services/network-modification-types.ts | 12 +-- src/services/study/network-modifications.ts | 2 +- 17 files changed, 46 insertions(+), 165 deletions(-) delete mode 100644 src/components/dialogs/network-modifications/substation/modification/substation-modification-form.tsx diff --git a/src/components/dialogs/limits/limits-pane-utils.ts b/src/components/dialogs/limits/limits-pane-utils.ts index d37ec23922..53d35489ef 100644 --- a/src/components/dialogs/limits/limits-pane-utils.ts +++ b/src/components/dialogs/limits/limits-pane-utils.ts @@ -29,15 +29,12 @@ import { areArrayElementsUnique, formatMapInfosToTemporaryLimitsFormSchema, formatTemporaryLimitsModificationToFormSchema, - toModificationOperation, } from 'components/utils/utils'; import yup from 'components/utils/yup-config'; import { - AttributeModification, CurrentLimits, OperationalLimitsGroup, OperationalLimitsGroupModificationInfos, - OperationType, TemporaryLimit, } from '../../../services/network-modification-types'; import { CurrentLimitsData } from '../../../services/study/network-map.type'; @@ -45,7 +42,13 @@ import { LineModificationFormSchema } from '../network-modifications/line/modifi import { OperationalLimitsGroupFormSchema, TemporaryLimitFormSchema } from './operational-limits-groups-types'; import { TestContext } from 'yup'; import { APPLICABILITY } from 'components/network/constants'; -import { FieldConstants, sanitizeString } from '@gridsuite/commons-ui'; +import { + AttributeModification, + FieldConstants, + OperationType, + sanitizeString, + toModificationOperation, +} from '@gridsuite/commons-ui'; const limitsGroupValidationSchema = () => ({ [ID]: yup.string().nonNullable().required(), diff --git a/src/components/dialogs/network-modifications/battery/modification/battery-modification-dialog.tsx b/src/components/dialogs/network-modifications/battery/modification/battery-modification-dialog.tsx index 09afae65ad..5240af6b16 100644 --- a/src/components/dialogs/network-modifications/battery/modification/battery-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/battery/modification/battery-modification-dialog.tsx @@ -20,6 +20,7 @@ import { DeepNullable, sanitizeString, FieldConstants, + toModificationOperation, } from '@gridsuite/commons-ui'; import { yupResolver } from '@hookform/resolvers/yup'; import yup from 'components/utils/yup-config'; @@ -69,7 +70,6 @@ import { import { isNodeBuilt } from '../../../../graph/util/model-functions'; import { BatteryFormInfos, BatteryModificationDialogSchemaForm } from '../battery-dialog.type'; import { FetchStatus } from '../../../../../services/utils.type'; -import { toModificationOperation } from '../../../../utils/utils'; import { getActivePowerControlEmptyFormData, getActivePowerControlSchema, diff --git a/src/components/dialogs/network-modifications/generator/modification/generator-modification-dialog.tsx b/src/components/dialogs/network-modifications/generator/modification/generator-modification-dialog.tsx index 76d0603946..2ab8d374cc 100644 --- a/src/components/dialogs/network-modifications/generator/modification/generator-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/generator/modification/generator-modification-dialog.tsx @@ -21,6 +21,7 @@ import { DeepNullable, sanitizeString, FieldConstants, + toModificationOperation, } from '@gridsuite/commons-ui'; import { yupResolver } from '@hookform/resolvers/yup'; import yup from 'components/utils/yup-config'; @@ -96,7 +97,6 @@ import { } from '../../../active-power-control/active-power-control-utils'; import { GeneratorModificationInfos } from '../../../../../services/network-modification-types'; import { GeneratorFormInfos, GeneratorModificationDialogSchemaForm } from '../generator-dialog.type'; -import { toModificationOperation } from '../../../../utils/utils'; import { EquipmentModificationDialogProps } from '../../../../graph/menus/network-modifications/network-modification-menu.type'; import { useFormWithDirtyTracking } from 'components/dialogs/commons/use-form-with-dirty-tracking'; import { diff --git a/src/components/dialogs/network-modifications/hvdc-line/lcc/common/lcc-utils.ts b/src/components/dialogs/network-modifications/hvdc-line/lcc/common/lcc-utils.ts index ee62a6b2a5..1e58cc44c7 100644 --- a/src/components/dialogs/network-modifications/hvdc-line/lcc/common/lcc-utils.ts +++ b/src/components/dialogs/network-modifications/hvdc-line/lcc/common/lcc-utils.ts @@ -50,6 +50,7 @@ import { MODIFICATION_TYPES, modificationPropertiesSchema, sanitizeString, + toModificationOperation, } from '@gridsuite/commons-ui'; import { UNDEFINED_CONNECTION_DIRECTION } from '../../../../../network/constants'; import { getConnectivityWithPositionSchema } from 'components/dialogs/connectivity/connectivity-form-utils'; @@ -60,7 +61,6 @@ import { LccShuntCompensatorInfos, LccShuntCompensatorModificationInfos, } from '../../../../../../services/network-modification-types'; -import { toModificationOperation } from '../../../../../utils/utils'; export const getLccConverterStationSchema = () => yup.object().shape({ diff --git a/src/components/dialogs/network-modifications/hvdc-line/lcc/modification/lcc-modification-dialog.tsx b/src/components/dialogs/network-modifications/hvdc-line/lcc/modification/lcc-modification-dialog.tsx index 2c6a1b544f..d5b355833b 100644 --- a/src/components/dialogs/network-modifications/hvdc-line/lcc/modification/lcc-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/hvdc-line/lcc/modification/lcc-modification-dialog.tsx @@ -30,6 +30,7 @@ import { DeepNullable, sanitizeString, FieldConstants, + toModificationOperation, } from '@gridsuite/commons-ui'; import { yupResolver } from '@hookform/resolvers/yup'; import { LccDialogTab, LccFormInfos, LccModificationSchemaForm } from '../common/lcc-type'; @@ -55,7 +56,6 @@ import { EQUIPMENT_INFOS_TYPES } from '../../../../../utils/equipment-types'; import { FORM_LOADING_DELAY } from '../../../../../network/constants'; import { ModificationDialog } from '../../../../commons/modificationDialog'; import { LccModificationForm } from './lcc-modification-form'; -import { toModificationOperation } from '../../../../../utils/utils'; import { LccConverterStationModificationInfos, LccModificationInfos } from 'services/network-modification-types'; import { useFormWithDirtyTracking } from 'components/dialogs/commons/use-form-with-dirty-tracking'; diff --git a/src/components/dialogs/network-modifications/hvdc-line/vsc/converter-station/converter-station-utils.tsx b/src/components/dialogs/network-modifications/hvdc-line/vsc/converter-station/converter-station-utils.tsx index 2f2045c430..732112f13d 100644 --- a/src/components/dialogs/network-modifications/hvdc-line/vsc/converter-station/converter-station-utils.tsx +++ b/src/components/dialogs/network-modifications/hvdc-line/vsc/converter-station/converter-station-utils.tsx @@ -5,7 +5,12 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { MODIFICATION_TYPES, sanitizeString } from '@gridsuite/commons-ui'; +import { + AttributeModification, + MODIFICATION_TYPES, + sanitizeString, + toModificationOperation, +} from '@gridsuite/commons-ui'; import yup from '../../../../../utils/yup-config'; import { BUS_OR_BUSBAR_SECTION, @@ -39,13 +44,9 @@ import { getReactiveLimitsSchema, } from '../../../../reactive-limits/reactive-limits-utils'; import { UNDEFINED_CONNECTION_DIRECTION } from '../../../../../network/constants'; -import { toModificationOperation } from '../../../../../utils/utils'; import { VscConverterStationFormInfos, ConverterStationElementModificationInfos } from './converter-station-type'; import { ReactiveCapabilityCurvePoints } from '../../../../reactive-limits/reactive-limits.type'; -import { - AttributeModification, - ConverterStationCreationInfos, -} from '../../../../../../services/network-modification-types'; +import { ConverterStationCreationInfos } from '../../../../../../services/network-modification-types'; export type UpdateReactiveCapabilityCurveTable = (action: string, index: number) => void; diff --git a/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-utils.ts b/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-utils.ts index c98ceab1a9..d5bfc34660 100644 --- a/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-utils.ts +++ b/src/components/dialogs/network-modifications/limit-sets/limit-sets-tabular-modification-utils.ts @@ -29,9 +29,8 @@ import { EQUIPMENT_TYPES } from '../../../utils/equipment-types'; import yup from '../../../utils/yup-config'; import type { UUID } from 'node:crypto'; import { LIMIT_SETS_TABULAR_MODIFICATION_EQUIPMENTS } from '../tabular/tabular-modification-utils'; -import { toModificationOperation } from '../../../utils/utils'; -import { AttributeModification } from '../../../../services/network-modification-types'; import { APPLICABILITY } from '../../../network/constants'; +import { AttributeModification, toModificationOperation } from '@gridsuite/commons-ui'; type TemporaryLimit = { name: AttributeModification; diff --git a/src/components/dialogs/network-modifications/line/modification/line-modification-dialog.tsx b/src/components/dialogs/network-modifications/line/modification/line-modification-dialog.tsx index 125a5be73f..cecc464707 100644 --- a/src/components/dialogs/network-modifications/line/modification/line-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/line/modification/line-modification-dialog.tsx @@ -19,6 +19,7 @@ import { modificationPropertiesSchema, sanitizeString, snackWithFallback, + toModificationOperation, toModificationProperties, useSnackMessage, } from '@gridsuite/commons-ui'; @@ -103,7 +104,6 @@ import { BranchInfos } from '../../../../../services/study/network-map.type'; import { useIntl } from 'react-intl'; import { LineModificationFormSchema } from './line-modification-type'; import { LineModificationInfos } from '../../../../../services/network-modification-types'; -import { toModificationOperation } from '../../../../utils/utils'; import { useFormWithDirtyTracking } from 'components/dialogs/commons/use-form-with-dirty-tracking'; import { OperationalLimitsGroupsFormSchema } from '../../../limits/operational-limits-groups-types'; import { ComputedLineCharacteristics } from '../../../line-types-catalog/line-catalog.type'; diff --git a/src/components/dialogs/network-modifications/load/modification/load-modification.type.ts b/src/components/dialogs/network-modifications/load/modification/load-modification.type.ts index e31ed43037..fbaa8589dd 100644 --- a/src/components/dialogs/network-modifications/load/modification/load-modification.type.ts +++ b/src/components/dialogs/network-modifications/load/modification/load-modification.type.ts @@ -5,7 +5,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { AttributeModification } from 'services/network-modification-types'; import { EQUIPMENT_TYPES } from '../../../../utils/equipment-types'; import { ACTIVE_POWER_SETPOINT, @@ -25,7 +24,7 @@ import { VOLTAGE_LEVEL, } from '../../../../utils/field-constants'; import { MeasurementInfo } from '../../common/measurements/measurement.type'; -import { FieldConstants, Property } from '@gridsuite/commons-ui'; +import { AttributeModification, FieldConstants, Property } from '@gridsuite/commons-ui'; export type LoadModificationSchemaForm = { [EQUIPMENT_NAME]?: string; diff --git a/src/components/dialogs/network-modifications/shunt-compensator/modification/shunt-compensator-modification-dialog.tsx b/src/components/dialogs/network-modifications/shunt-compensator/modification/shunt-compensator-modification-dialog.tsx index c30461f4e0..b10ac6dc2a 100644 --- a/src/components/dialogs/network-modifications/shunt-compensator/modification/shunt-compensator-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/shunt-compensator/modification/shunt-compensator-modification-dialog.tsx @@ -19,6 +19,7 @@ import { DeepNullable, sanitizeString, FieldConstants, + toModificationOperation, } from '@gridsuite/commons-ui'; import { BUS_OR_BUSBAR_SECTION, @@ -64,7 +65,6 @@ import { getCharacteristicsFormValidationSchema, } from '../characteristics-pane/characteristics-form-utils'; import { isNodeBuilt } from '../../../../graph/util/model-functions'; -import { toModificationOperation } from '../../../../utils/utils'; import ShuntCompensatorModificationForm from './shunt-compensator-modification-form'; const emptyFormData = { diff --git a/src/components/dialogs/network-modifications/substation/modification/substation-modification-dialog.tsx b/src/components/dialogs/network-modifications/substation/modification/substation-modification-dialog.tsx index d3e21e4abf..72cf94ab1d 100644 --- a/src/components/dialogs/network-modifications/substation/modification/substation-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/substation/modification/substation-modification-dialog.tsx @@ -11,19 +11,21 @@ import { CustomFormProvider, EquipmentType, getConcatenatedProperties, - getPropertiesFromModification, - modificationPropertiesSchema, - Property, snackWithFallback, toModificationProperties, useSnackMessage, DeepNullable, sanitizeString, FieldConstants, + SubstationModificationForm, + SubstationModificationFormData, + substationModificationEmptyFormData, + substationModificationFormSchema, + SubstationModificationInfos, + SubstationModificationDto, + substationModificationDtoToForm, } from '@gridsuite/commons-ui'; import { yupResolver } from '@hookform/resolvers/yup'; -import yup from 'components/utils/yup-config'; -import SubstationModificationForm from './substation-modification-form'; import { useOpenShortWaitFetching } from 'components/dialogs/commons/handle-modification-form'; import { FORM_LOADING_DELAY } from 'components/network/constants'; import { EQUIPMENT_INFOS_TYPES, EQUIPMENT_TYPES } from 'components/utils/equipment-types'; @@ -34,33 +36,7 @@ import { FetchStatus } from '../../../../../services/utils'; import { isNodeBuilt } from '../../../../graph/util/model-functions'; import { UUID } from 'node:crypto'; import { CurrentTreeNode } from '../../../../graph/tree-node.type'; -import { AttributeModification } from 'services/network-modification-types'; import { useForm } from 'react-hook-form'; -import { SubstationInfos } from '../substation-dialog.type'; - -const formSchema = yup - .object() - .shape({ - [FieldConstants.EQUIPMENT_NAME]: yup.string().nullable(), - [FieldConstants.COUNTRY]: yup.string().nullable(), - }) - .concat(modificationPropertiesSchema); - -export type SubstationModificationFormData = yup.InferType; - -const emptyFormData: SubstationModificationFormData = { - [FieldConstants.EQUIPMENT_NAME]: '', - [FieldConstants.COUNTRY]: null, - [FieldConstants.ADDITIONAL_PROPERTIES]: [], -}; - -interface SubstationModificationEditData { - uuid?: UUID; - equipmentId: string; - equipmentName?: AttributeModification | null; - country: AttributeModification | null; - properties?: Property[] | null; -} interface SubstationModificationDialogProps { studyUuid: UUID; @@ -68,7 +44,7 @@ interface SubstationModificationDialogProps { currentRootNetworkUuid: UUID; isUpdate: boolean; editDataFetchStatus?: string; - editData?: SubstationModificationEditData; + editData?: SubstationModificationDto; defaultIdValue?: string; } @@ -96,12 +72,12 @@ const SubstationModificationDialog = ({ const currentNodeUuid = currentNode?.id; const { snackError } = useSnackMessage(); const [selectedId, setSelectedId] = useState(defaultIdValue ?? null); - const [substationToModify, setSubstationToModify] = useState(); + const [substationToModify, setSubstationToModify] = useState(); const [dataFetchStatus, setDataFetchStatus] = useState(FetchStatus.IDLE); const formMethods = useForm>({ - defaultValues: emptyFormData, - resolver: yupResolver>(formSchema), + defaultValues: substationModificationEmptyFormData, + resolver: yupResolver>(substationModificationFormSchema), }); const { reset, getValues } = formMethods; @@ -110,16 +86,12 @@ const SubstationModificationDialog = ({ if (editData?.equipmentId) { setSelectedId(editData.equipmentId); } - reset({ - [FieldConstants.EQUIPMENT_NAME]: editData.equipmentName?.value ?? '', - [FieldConstants.COUNTRY]: editData.country?.value ?? null, - ...getPropertiesFromModification(editData?.properties ?? undefined), - }); + reset(substationModificationDtoToForm(editData)); } }, [reset, editData]); const clear = useCallback(() => { - reset(emptyFormData); + reset(substationModificationEmptyFormData); }, [reset]); const onEquipmentIdChange = useCallback( @@ -135,12 +107,13 @@ const SubstationModificationDialog = ({ equipmentId, true ) - .then((substation: SubstationInfos) => { + .then((substation: SubstationModificationInfos) => { if (substation) { setSubstationToModify(substation); reset( (formValues) => ({ ...formValues, + [FieldConstants.EQUIPMENT_ID]: equipmentId, [FieldConstants.ADDITIONAL_PROPERTIES]: getConcatenatedProperties( substation, getValues @@ -159,7 +132,7 @@ const SubstationModificationDialog = ({ }); } else { setSubstationToModify(undefined); - reset(emptyFormData, { keepDefaultValues: true }); + reset(substationModificationEmptyFormData, { keepDefaultValues: true }); } }, [studyUuid, currentRootNetworkUuid, currentNodeUuid, reset, getValues, editData] @@ -198,7 +171,7 @@ const SubstationModificationDialog = ({ return ( )} - {selectedId != null && ( - - )} + {selectedId != null && } ); diff --git a/src/components/dialogs/network-modifications/substation/modification/substation-modification-form.tsx b/src/components/dialogs/network-modifications/substation/modification/substation-modification-form.tsx deleted file mode 100644 index c9dea88af0..0000000000 --- a/src/components/dialogs/network-modifications/substation/modification/substation-modification-form.tsx +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -import { - CountrySelectionInput, - FieldConstants, - filledTextField, - PropertiesForm, - TextInput, -} from '@gridsuite/commons-ui'; -import { useLocalizedCountries } from 'components/utils/localized-countries-hook'; -import { Grid, TextField } from '@mui/material'; -import GridItem from '../../../commons/grid-item'; -import { SubstationInfos } from '../substation-dialog.type'; - -interface SubstationModificationFormProps { - substationToModify?: SubstationInfos | null; - equipmentId: string; -} - -const SubstationModificationForm = ({ substationToModify, equipmentId }: Readonly) => { - const { translate } = useLocalizedCountries(); - - const substationIdField = ( - - ); - - const substationNameField = ( - - ); - - const substationCountryField = ( - - ); - - return ( - <> - - {substationIdField} - {substationNameField} - {substationCountryField} - - - - ); -}; - -export default SubstationModificationForm; diff --git a/src/components/dialogs/network-modifications/tabular/tabular-modification-utils.ts b/src/components/dialogs/network-modifications/tabular/tabular-modification-utils.ts index cbac6c1388..410cbcaec2 100644 --- a/src/components/dialogs/network-modifications/tabular/tabular-modification-utils.ts +++ b/src/components/dialogs/network-modifications/tabular/tabular-modification-utils.ts @@ -11,6 +11,7 @@ import { FieldConstants, FieldType, MODIFICATION_TYPES, + toModificationOperation, } from '@gridsuite/commons-ui'; import { B, @@ -102,7 +103,6 @@ import { VOLTAGE_REGULATION_ON, X, } from 'components/utils/field-constants'; -import { toModificationOperation } from '../../../utils/utils'; import { ReactiveCapabilityCurvePoints } from 'components/dialogs/reactive-limits/reactive-limits.type'; import { APPLICABILITY, diff --git a/src/components/dialogs/network-modifications/two-windings-transformer/modification/two-windings-transformer-modification-dialog.tsx b/src/components/dialogs/network-modifications/two-windings-transformer/modification/two-windings-transformer-modification-dialog.tsx index b88e7fe86a..fbd75b757e 100644 --- a/src/components/dialogs/network-modifications/two-windings-transformer/modification/two-windings-transformer-modification-dialog.tsx +++ b/src/components/dialogs/network-modifications/two-windings-transformer/modification/two-windings-transformer-modification-dialog.tsx @@ -19,6 +19,7 @@ import { modificationPropertiesSchema, sanitizeString, snackWithFallback, + toModificationOperation, toModificationProperties, useSnackMessage, } from '@gridsuite/commons-ui'; @@ -111,7 +112,6 @@ import { addSelectedFieldToRows, compareStepsWithPreviousValues, computeHighTapPosition, - toModificationOperation, } from '../../../../utils/utils'; import { EQUIPMENT_INFOS_TYPES } from 'components/utils/equipment-types'; import { EquipmentIdSelector } from '../../../equipment-id/equipment-id-selector'; diff --git a/src/components/utils/utils.ts b/src/components/utils/utils.ts index ac7da733bb..e3c4c1b89d 100644 --- a/src/components/utils/utils.ts +++ b/src/components/utils/utils.ts @@ -7,9 +7,9 @@ import { getIn, SchemaDescription } from 'yup'; import { isNotBlankOrEmpty, toNumber } from './validation-functions'; -import { AttributeModification, OperationType, TemporaryLimit } from 'services/network-modification-types'; +import { TemporaryLimit } from 'services/network-modification-types'; import { VoltageLevel } from './equipment-types'; -import { Option } from '@gridsuite/commons-ui'; +import { AttributeModification, OperationType, Option } from '@gridsuite/commons-ui'; import { APPLICABILITY_FIELD, CURRENT_LIMITS, @@ -109,14 +109,6 @@ export const buildNewBusbarSections = (equipmentId: string, sectionCount: number return newBusbarSections; }; -export function toModificationOperation( - value: T -): AttributeModification, undefined>> | null { - return value === 0 || value === false || value - ? { value: value as Exclude, undefined>, op: OperationType.SET } - : null; -} - export function toModificationUnsetOperation( value: T ): AttributeModification, undefined>> | null { diff --git a/src/services/network-modification-types.ts b/src/services/network-modification-types.ts index 72f1aabdbc..670fc9d1e6 100644 --- a/src/services/network-modification-types.ts +++ b/src/services/network-modification-types.ts @@ -13,21 +13,11 @@ import { import { Filter } from '../components/dialogs/network-modifications/by-filter/commons/by-filter.type'; import { ConverterStationElementModificationInfos } from '../components/dialogs/network-modifications/hvdc-line/vsc/converter-station/converter-station-type'; import { ReactiveCapabilityCurvePoints } from '../components/dialogs/reactive-limits/reactive-limits.type'; -import { ModificationType, Option, Property } from '@gridsuite/commons-ui'; +import { AttributeModification, ModificationType, Option, Property } from '@gridsuite/commons-ui'; import { ENABLE_OLG_MODIFICATION } from '../components/utils/field-constants'; import { VARIATION_TYPES } from '../components/network/constants'; import { OperationalLimitsGroupFormSchema } from '../components/dialogs/limits/operational-limits-groups-types'; -export enum OperationType { - SET = 'SET', - UNSET = 'UNSET', -} - -export type AttributeModification = { - value?: T; - op: OperationType; -}; - export interface HvdcAngleDroopActivePowerControlInfo { isEnabled: boolean; droop: number; diff --git a/src/services/study/network-modifications.ts b/src/services/study/network-modifications.ts index 979594d50b..7fd8c7aba3 100644 --- a/src/services/study/network-modifications.ts +++ b/src/services/study/network-modifications.ts @@ -15,8 +15,8 @@ import { ModificationType, NetworkModificationMetadata, safeEncodeURIComponent, + toModificationOperation, } from '@gridsuite/commons-ui'; -import { toModificationOperation } from '../../components/utils/utils'; import { getStudyUrlWithNodeUuid, getStudyUrlWithNodeUuidAndRootNetworkUuid } from './index'; import { EQUIPMENT_TYPES } from '../../components/utils/equipment-types'; import { BRANCH_SIDE, OPERATING_STATUS_ACTION } from '../../components/network/constants'; From 90a304fecb40f103e51b8fdf174fd38c92c7fd8e Mon Sep 17 00:00:00 2001 From: achour94 Date: Thu, 26 Feb 2026 08:51:32 +0100 Subject: [PATCH 2/5] Resolve comments Signed-off-by: achour94 --- .../dialogs/export-network/export-network-dialog.tsx | 6 ++++-- .../save/save-spreadsheet-model-dialog.tsx | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/dialogs/export-network/export-network-dialog.tsx b/src/components/dialogs/export-network/export-network-dialog.tsx index 4702087936..ead3d72d3f 100644 --- a/src/components/dialogs/export-network/export-network-dialog.tsx +++ b/src/components/dialogs/export-network/export-network-dialog.tsx @@ -174,8 +174,10 @@ export function ExportNetworkDialog({ From e8c44ab6fb5d22787f2e5609a1534fe96fd73482 Mon Sep 17 00:00:00 2001 From: achour94 Date: Mon, 2 Mar 2026 14:27:04 +0100 Subject: [PATCH 3/5] chore: update commons-ui to version 0.170.0 Signed-off-by: achour94 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31d4129fc2..45f6d6a8df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@gridsuite/commons-ui": "0.169.0", + "@gridsuite/commons-ui": "0.170.0", "@hello-pangea/dnd": "^18.0.1", "@hookform/resolvers": "^4.1.3", "@mui/icons-material": "^5.18.0", @@ -3289,9 +3289,9 @@ } }, "node_modules/@gridsuite/commons-ui": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/@gridsuite/commons-ui/-/commons-ui-0.169.0.tgz", - "integrity": "sha512-P5QPS+6O9f8zyTTIlM5pHu2rTkWdr77oTVXZY8d2X5Ps8HSjEXa3dJXtINjcby+js+rchSdfmt7h9M0LPXxi1w==", + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/@gridsuite/commons-ui/-/commons-ui-0.170.0.tgz", + "integrity": "sha512-bYcc2pn/XiR16tsRhfX6IG8xkgCqa7IX/b6OqDJJofTSOAGDT5XonjC36mrkDTJCNouj3n3xKC/eRGBjF2+E0w==", "license": "MPL-2.0", "dependencies": { "@ag-grid-community/locale": "^33.3.2", diff --git a/package.json b/package.json index 37fffe29ae..b3f90d7a3f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@gridsuite/commons-ui": "0.169.0", + "@gridsuite/commons-ui": "0.170.0", "@hello-pangea/dnd": "^18.0.1", "@hookform/resolvers": "^4.1.3", "@mui/icons-material": "^5.18.0", From 7b3c3d7ef9fa1d8c44f3de86099a3af5d5ce0969 Mon Sep 17 00:00:00 2001 From: achour94 Date: Mon, 2 Mar 2026 14:53:46 +0100 Subject: [PATCH 4/5] chore: update commons-ui to version 0.170.0 Signed-off-by: achour94 --- jest.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jest.config.ts b/jest.config.ts index 54d1d77818..66d071aa47 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -13,7 +13,7 @@ const config: Config = { '^.+\\.svg\\?react$|@powsybl/network-viewer': '/src/_mocks_/svg.tsx', '^.+\\.(css|less|scss)$': 'identity-obj-proxy', }, - transformIgnorePatterns: ['node_modules/(?!@gridsuite/commons-ui|react-dnd|dnd-core|@react-dnd)'], // transform from ESM + transformIgnorePatterns: ['node_modules/(?!@gridsuite/commons-ui|react-dnd|uuid|dnd-core|react-resizable-panels|@react-dnd)'], // transform from ESM moduleDirectories: ['node_modules', 'src'], // to allow absolute path from ./src setupFiles: ['/jest.setup.ts'], }; From 3691971892432fa650c9e53789f829ee7a4ec95a Mon Sep 17 00:00:00 2001 From: achour94 Date: Mon, 2 Mar 2026 14:57:58 +0100 Subject: [PATCH 5/5] chore: update commons-ui to version 0.170.0 Signed-off-by: achour94 --- jest.config.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jest.config.ts b/jest.config.ts index 66d071aa47..c548c5ce26 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -13,7 +13,9 @@ const config: Config = { '^.+\\.svg\\?react$|@powsybl/network-viewer': '/src/_mocks_/svg.tsx', '^.+\\.(css|less|scss)$': 'identity-obj-proxy', }, - transformIgnorePatterns: ['node_modules/(?!@gridsuite/commons-ui|react-dnd|uuid|dnd-core|react-resizable-panels|@react-dnd)'], // transform from ESM + transformIgnorePatterns: [ + 'node_modules/(?!@gridsuite/commons-ui|react-dnd|uuid|dnd-core|react-resizable-panels|@react-dnd)', + ], // transform from ESM moduleDirectories: ['node_modules', 'src'], // to allow absolute path from ./src setupFiles: ['/jest.setup.ts'], };