Skip to content

Commit 54aa342

Browse files
move type next to enum for better maintainance
1 parent 73550c9 commit 54aa342

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

src/components/spreadsheet-view/spreadsheet/spreadsheet-content/hooks/use-equipment-modification.tsx

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,12 @@ import VoltageLevelModificationDialog from 'components/dialogs/network-modificat
1717
import { type FunctionComponent, type ReactElement, useCallback, useMemo, useState } from 'react';
1818
import { useSelector } from 'react-redux';
1919
import { type AppState } from 'redux/reducer';
20-
import { SpreadsheetEquipmentType } from '../../../types/spreadsheet.type';
20+
import { type EditableEquipmentType, SpreadsheetEquipmentType } from '../../../types/spreadsheet.type';
2121

2222
export type UseEquipmentModificationProps = {
2323
equipmentType: SpreadsheetEquipmentType;
2424
};
2525

26-
type EditableEquipmentType = Exclude<
27-
SpreadsheetEquipmentType,
28-
| SpreadsheetEquipmentType.BRANCH
29-
| SpreadsheetEquipmentType.BUS
30-
| SpreadsheetEquipmentType.BUSBAR_SECTION
31-
| SpreadsheetEquipmentType.DANGLING_LINE
32-
| SpreadsheetEquipmentType.HVDC_LINE
33-
| SpreadsheetEquipmentType.LCC_CONVERTER_STATION
34-
| SpreadsheetEquipmentType.STATIC_VAR_COMPENSATOR
35-
| SpreadsheetEquipmentType.THREE_WINDINGS_TRANSFORMER
36-
| SpreadsheetEquipmentType.TIE_LINE
37-
| SpreadsheetEquipmentType.VSC_CONVERTER_STATION
38-
>;
39-
4026
const EQUIPMENT_DIALOG_MAPPING: Readonly<Record<EditableEquipmentType, FunctionComponent<any>>> = {
4127
[SpreadsheetEquipmentType.SUBSTATION]: SubstationModificationDialog,
4228
[SpreadsheetEquipmentType.VOLTAGE_LEVEL]: VoltageLevelModificationDialog,
@@ -52,7 +38,7 @@ function isEditableEquipmentType(type: SpreadsheetEquipmentType): type is Editab
5238
return type in EQUIPMENT_DIALOG_MAPPING;
5339
}
5440

55-
export function useEquipmentModification({ equipmentType }: UseEquipmentModificationProps) {
41+
export function useEquipmentModification({ equipmentType }: Readonly<UseEquipmentModificationProps>) {
5642
const [modificationDialog, setModificationDialog] = useState<ReactElement | null>(null);
5743

5844
const currentNode = useSelector((state: AppState) => state.currentTreeNode);
@@ -80,7 +66,7 @@ export function useEquipmentModification({ equipmentType }: UseEquipmentModifica
8066
if (!isEditableEquipmentType(equipmentType)) {
8167
return null;
8268
}
83-
return createDialogWithProps(EQUIPMENT_DIALOG_MAPPING[equipmentType as EditableEquipmentType], equipmentId);
69+
return createDialogWithProps(EQUIPMENT_DIALOG_MAPPING[equipmentType], equipmentId);
8470
},
8571
[createDialogWithProps, equipmentType]
8672
);

src/components/spreadsheet-view/types/spreadsheet.type.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ export function isSpreadsheetEquipmentType(type: string): type is SpreadsheetEqu
3535
return type in SpreadsheetEquipmentType;
3636
}
3737

38+
export type EditableEquipmentType =
39+
| SpreadsheetEquipmentType.SUBSTATION
40+
| SpreadsheetEquipmentType.VOLTAGE_LEVEL
41+
| SpreadsheetEquipmentType.LINE
42+
| SpreadsheetEquipmentType.TWO_WINDINGS_TRANSFORMER
43+
| SpreadsheetEquipmentType.GENERATOR
44+
| SpreadsheetEquipmentType.LOAD
45+
| SpreadsheetEquipmentType.BATTERY
46+
| SpreadsheetEquipmentType.SHUNT_COMPENSATOR;
47+
3848
export interface SpreadsheetTabDefinition {
3949
uuid: UUID;
4050
index: number;

0 commit comments

Comments
 (0)