Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a08ddcc
Migrate twt creation
achour94 Jan 14, 2026
9240bcd
Fix Sonar issues
achour94 Jan 14, 2026
ccf982d
Fix Sonar issues
achour94 Jan 14, 2026
af29749
Merge branch 'main' into ts-migration/migrate-twt-creation
dbraquart Jan 15, 2026
8bc0f36
migrate modification dialog
achour94 Jan 16, 2026
7dd1b8f
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 19, 2026
a89bbfa
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 19, 2026
80a648c
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 21, 2026
38bee8f
Refactor to separate type from map and modification server
achour94 Jan 26, 2026
c43aee4
Merge remote-tracking branch 'origin/main' into ts-migration/migrate-…
achour94 Jan 26, 2026
f7a2be5
fix
achour94 Jan 26, 2026
8b497d0
fix
achour94 Jan 26, 2026
2f1e3c0
fix
achour94 Jan 26, 2026
8400e4e
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 26, 2026
1c4dd62
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 26, 2026
f43d61f
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Jan 28, 2026
78d5326
Merge branch 'main' into ts-migration/migrate-twt-creation
dbraquart Feb 10, 2026
187101c
Merge remote-tracking branch 'origin/main' into ts-migration/migrate-…
dbraquart Feb 10, 2026
5a0d7a8
fix after merge with conflicts
dbraquart Feb 10, 2026
d299913
Merge branch 'main' into ts-migration/migrate-twt-creation
dbraquart Feb 12, 2026
49bd562
Merge branch 'main' into ts-migration/migrate-twt-creation
achour94 Feb 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions src/components/dialogs/limits/limits-pane-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import {
AttributeModification,
CurrentLimits,
OperationalLimitsGroup,
OperationalLimitsGroupModificationInfos,
OperationType,
TemporaryLimit,
} from '../../../services/network-modification-types';
Expand Down Expand Up @@ -142,6 +143,8 @@ const limitsValidationSchemaCreation = (id: string) => {
return { [id]: yup.object().shape(completeLimitsGroupSchema) };
};

export type LimitsFormSchema = yup.InferType<ReturnType<typeof limitsValidationSchemaCreation>[typeof LIMITS]>;

export const getLimitsValidationSchema = (id: string = LIMITS) => {
return limitsValidationSchemaCreation(id);
};
Expand All @@ -162,31 +165,31 @@ export const getLimitsEmptyFormData = (isModification = true, id = LIMITS) => {
};

export const formatOpLimitGroupsToFormInfos = (
limitGroups: OperationalLimitsGroup[]
limitGroups?: OperationalLimitsGroup[] | OperationalLimitsGroupModificationInfos[] | null
): OperationalLimitsGroupFormSchema[] => {
if (!limitGroups) {
return [];
}

return limitGroups
.filter(
(opLimitGroup: OperationalLimitsGroup) =>
(opLimitGroup: OperationalLimitsGroup | OperationalLimitsGroupModificationInfos) =>
opLimitGroup.modificationType !== LIMIT_SETS_MODIFICATION_TYPE.DELETE
)
.map((opLimitGroup: OperationalLimitsGroup) => {
.map((opLimitGroup: OperationalLimitsGroup | OperationalLimitsGroupModificationInfos) => {
return {
id: opLimitGroup.id + opLimitGroup.applicability,
name: opLimitGroup.id,
applicability: opLimitGroup.applicability,
limitsProperties: opLimitGroup.limitsProperties,
currentLimits: {
permanentLimit: opLimitGroup.currentLimits.permanentLimit,
permanentLimit: opLimitGroup?.currentLimits?.permanentLimit,
temporaryLimits: formatTemporaryLimitsModificationToFormSchema(
opLimitGroup.currentLimits.temporaryLimits
opLimitGroup?.currentLimits?.temporaryLimits as TemporaryLimit[]
),
},
};
});
}) as OperationalLimitsGroupFormSchema[];
};

export const getAllLimitsFormData = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,12 @@

import { CHARACTERISTICS, G, B, RATED_S, RATED_U1, RATED_U2, R, X } from 'components/utils/field-constants';
import yup from 'components/utils/yup-config';
import { CharacteristicsFormSchema } from '../two-windings-transformer.types';

const characteristicsValidationSchema = (isModification, additionalFields) => ({
type AdditionalValidationFields = Record<string, yup.AnySchema>;
type AdditionalDataFields = Record<string, unknown>;

const characteristicsValidationSchema = (isModification: boolean, additionalFields: AdditionalValidationFields) => ({
[CHARACTERISTICS]: yup.object().shape({
[R]: isModification
? yup.number().nullable().min(0, 'mustBeGreaterOrEqualToZero')
Expand All @@ -33,7 +37,7 @@ export const getCharacteristicsValidationSchema = (isModification = false, addit
return characteristicsValidationSchema(isModification, additionalFields);
};

const characteristicsEmptyFormData = (additionalFields) => ({
const characteristicsEmptyFormData = (additionalFields: AdditionalDataFields) => ({
[CHARACTERISTICS]: {
[R]: null,
[X]: null,
Expand All @@ -51,7 +55,15 @@ 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,
}: CharacteristicsFormSchema,
additionalFields = {}
) => {
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,20 @@ import { Grid } from '@mui/material';
import { B, CHARACTERISTICS, G, R, RATED_S, RATED_U1, RATED_U2, X } from 'components/utils/field-constants';
import { FormattedMessage } from 'react-intl';
import GridItem from '../../../commons/grid-item';
import { TwoWindingsTransformerMapInfos } from '../two-windings-transformer.types';
import GridSection from '../../../commons/grid-section';

const TwoWindingsTransformerCharacteristicsPane = ({ id = CHARACTERISTICS, twtToModify, isModification = false }) => {
export interface TwoWindingsTransformerCharacteristicsPaneProps {
id?: string;
twtToModify?: TwoWindingsTransformerMapInfos | null;
isModification?: boolean;
}

const TwoWindingsTransformerCharacteristicsPane = ({
id = CHARACTERISTICS,
twtToModify,
isModification = false,
}: TwoWindingsTransformerCharacteristicsPaneProps) => {
const width = isModification ? 12 : 8;

const seriesResistanceField = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
getCharacteristicsFormData,
getCharacteristicsValidationSchema,
} from '../../characteristics-pane/two-windings-transformer-characteristics-pane-utils';
import { CharacteristicsFormSchema } from '../../two-windings-transformer.types';

const twoWindingsTransformerValidationSchema = () =>
getCharacteristicsValidationSchema(false, {
Expand Down Expand Up @@ -46,6 +47,9 @@ export const getTwoWindingsTransformerFormData = ({
ratedU2 = null,
connectivity1 = null,
connectivity2 = null,
}: CharacteristicsFormSchema & {
connectivity1?: Record<string, unknown> | null;
connectivity2?: Record<string, unknown> | null;
Comment on lines +51 to +52
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
connectivity1?: Record<string, unknown> | null;
connectivity2?: Record<string, unknown> | null;
connectivity1?: ConnectivityFormSchema | null;
connectivity2?: ConnectivityFormSchema | null;

}) =>
getCharacteristicsFormData(
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand All @@ -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 = (
<ConnectivityForm
Expand Down Expand Up @@ -59,15 +69,15 @@ const TwoWindingsTransformerCreationCharacteristicsPane = ({
<>
<Box hidden={tabIndex !== TwoWindingsTransformerCreationDialogTab.CHARACTERISTICS_TAB} p={1}>
<GridSection title="Connectivity" customStyle={styles.h3} />
<GridSection title="Side1" heading={4} size="6" />
<GridSection title="Side1" heading={4} size={6} />
<Grid container spacing={2}>
<Grid item container direction="column">
<Grid container direction="column" spacing={2}>
<GridItem>{connectivity1Field}</GridItem>
</Grid>
</Grid>
</Grid>
<GridSection title="Side2" heading={4} size="6" />
<GridSection title="Side2" heading={4} size={6} />
<Grid container spacing={2}>
<Grid item container>
<Grid container direction="column" spacing={2}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,27 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import { Grid, Tab, Tabs } from '@mui/material';
import { Breakpoint, Grid, Tab, Tabs } from '@mui/material';
import { FormattedMessage } from 'react-intl';
import { useWatch } from 'react-hook-form';
import { ENABLED, PHASE_TAP_CHANGER, RATIO_TAP_CHANGER } from 'components/utils/field-constants';
import { getTabIndicatorStyle, getTabStyle } from '../../../../utils/tab-utils';
import { TwoWindingsTransformerCreationDialogTab } from '../two-windings-transformer-utils';
import { Dispatch, SetStateAction } from 'react';

const TwoWindingsTransformerCreationDialogTabs = ({ tabIndex, tabIndexesWithError, setTabIndex, setDialogWidth }) => {
export interface TwoWindingsTransformerCreationDialogTabsProps {
tabIndex: number;
tabIndexesWithError: number[];
setTabIndex: Dispatch<SetStateAction<number>>;
setDialogWidth: Dispatch<SetStateAction<Breakpoint>>;
}

const TwoWindingsTransformerCreationDialogTabs = ({
tabIndex,
tabIndexesWithError,
setTabIndex,
setDialogWidth,
}: TwoWindingsTransformerCreationDialogTabsProps) => {
const ratioTapChangerEnabledWatch = useWatch({
name: `${RATIO_TAP_CHANGER}.${ENABLED}`,
});
Expand Down
Loading
Loading