Skip to content
26 changes: 22 additions & 4 deletions src/components/network/selection-creation-panel/use-save-map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* 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 { Equipment, snackWithFallback, useSnackMessage } from '@gridsuite/commons-ui';
import { useCallback, useState } from 'react';
import { Equipment, fetchAppsMetadata, snackWithFallback, useSnackMessage } from '@gridsuite/commons-ui';
import { useCallback, useEffect, useState } from 'react';
import { useIntl } from 'react-intl';
import { useSelector } from 'react-redux';
import { AppState } from 'redux/reducer.type';
Expand All @@ -30,6 +30,14 @@
const currentRootNetworkUuid = useSelector((state: AppState) => state.currentRootNetworkUuid);
const { snackInfo, snackError, snackWarning } = useSnackMessage();
const [pendingState, setPendingState] = useState(false);
const [equipmentIdAsContingencyName, setEquipmentIdAsContingencyName] = useState(false);

useEffect(() => {
fetchAppsMetadata().then((res) => {
const metadata = res.find((item) => item.name === 'Study');
setEquipmentIdAsContingencyName(!!metadata?.useEquipmentIdAsContingencyNameForPolygonCreation);

Check failure on line 38 in src/components/network/selection-creation-panel/use-save-map.ts

View workflow job for this annotation

GitHub Actions / build / build

Property 'useEquipmentIdAsContingencyNameForPolygonCreation' does not exist on type 'Metadata'.
});
}, []);
Comment thread
flomillot marked this conversation as resolved.
Outdated

const onSaveSelection = useCallback(
async (
Expand Down Expand Up @@ -83,7 +91,8 @@
currentNodeUuid,
currentRootNetworkUuid,
equipments,
nominalVoltages
nominalVoltages,
equipmentIdAsContingencyName
);
snackInfo({
messageTxt: intl.formatMessage({
Expand All @@ -107,7 +116,16 @@
}
return true; // success
},
[currentNodeUuid, currentRootNetworkUuid, intl, snackError, snackInfo, snackWarning, studyUuid]
[
equipmentIdAsContingencyName,
currentNodeUuid,
currentRootNetworkUuid,
intl,
snackError,
snackInfo,
snackWarning,
studyUuid,
]
);

return { pendingState, onSaveSelection };
Expand Down
12 changes: 8 additions & 4 deletions src/services/study/contingency-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ export interface ContingencyList {
type: string;
}

function createIdentifiersList(selectedEquipments: EquipmentInfos[]) {
function createIdentifiersList(selectedEquipments: EquipmentInfos[], equipmentIdAsContingencyName: boolean) {
const identifierLists = selectedEquipments.map((eq) => {
return {
type: 'LIST',
contingencyId: eq.name ? eq.name : eq.id,
contingencyId: equipmentIdAsContingencyName ? eq.id : (eq.name ?? eq.id),
identifierList: [
{
type: 'ID_BASED',
Expand All @@ -41,8 +41,12 @@ function createIdentifiersList(selectedEquipments: EquipmentInfos[]) {
return identifierLists;
}

export function createIdentifierContingencyList(contingencyListName: string, equipmentList: EquipmentInfos[]) {
const identifiersList = createIdentifiersList(equipmentList);
export function createIdentifierContingencyList(
contingencyListName: string,
equipmentList: EquipmentInfos[],
equipmentIdAsContingencyName: boolean
) {
const identifiersList = createIdentifiersList(equipmentList, equipmentIdAsContingencyName);
return {
identifierContingencyList: {
type: 'identifier',
Expand Down
27 changes: 12 additions & 15 deletions src/services/study/network-map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,18 @@ export async function createMapContingencyList(
currentNodeUuid: UUID,
currentRootNetworkUuid: UUID,
selectedEquipments: EquipmentInfos[],
nominalVoltages: number[]
nominalVoltages: number[],
equipmentIdAsContingencyName: boolean
) {
let equipmentContingencyList: ContingencyList;
switch (equipmentType) {
case EquipmentType.SUBSTATION:
case EquipmentType.LINE:
equipmentContingencyList = createIdentifierContingencyList(elementName, selectedEquipments);
equipmentContingencyList = createIdentifierContingencyList(
elementName,
selectedEquipments,
equipmentIdAsContingencyName
);

break;

Expand All @@ -279,7 +284,11 @@ export async function createMapContingencyList(
if (elementsIds?.length === 0) {
throw new Error('EmptySelection');
}
equipmentContingencyList = createIdentifierContingencyList(elementName, elementsIds);
equipmentContingencyList = createIdentifierContingencyList(
elementName,
elementsIds,
equipmentIdAsContingencyName
);
break;
}
if (
Expand All @@ -291,15 +300,3 @@ export async function createMapContingencyList(

return createContingencyList(equipmentContingencyList, elementName, '', destinationDirectoryId);
}

export function fetchAllNominalVoltages(studyUuid: UUID, currentNodeUuid: UUID, currentRootNetworkUuid: UUID) {
console.info(
`Fetching all nominal voltages of study '${studyUuid}', node '${currentNodeUuid}' and root network '${currentRootNetworkUuid}' ...`
);

const fetchNominalVoltagesUrl =
getStudyUrlWithNodeUuidAndRootNetworkUuid(studyUuid, currentNodeUuid, currentRootNetworkUuid) +
'/network-map/nominal-voltages?inUpstreamBuiltParentNode=true';
console.debug(fetchNominalVoltagesUrl);
return backendFetchJson(fetchNominalVoltagesUrl);
}
Loading