From a5b7d63345d4d3c820b8b7e08e6085af7dfba9af Mon Sep 17 00:00:00 2001 From: basseche Date: Fri, 22 Aug 2025 14:33:00 +0200 Subject: [PATCH 1/7] Add color map to DirectoryItemInput so we can give different color by equipment type and add new Fields for Aleas by filter Signed-off-by: basseche --- .../DirectoryItemSelector.tsx | 9 +- .../reactHookForm/DirectoryItemsInput.tsx | 93 ++++++++++++++----- .../treeViewFinder/TreeViewFinder.tsx | 3 + src/translations/en/equipmentsEn.ts | 1 + src/translations/fr/equipmentsFr.ts | 1 + src/utils/constants/fieldConstants.ts | 2 + 6 files changed, 82 insertions(+), 27 deletions(-) diff --git a/src/components/directoryItemSelector/DirectoryItemSelector.tsx b/src/components/directoryItemSelector/DirectoryItemSelector.tsx index 348d267e7..093daa798 100644 --- a/src/components/directoryItemSelector/DirectoryItemSelector.tsx +++ b/src/components/directoryItemSelector/DirectoryItemSelector.tsx @@ -159,6 +159,7 @@ export interface DirectoryItemSelectorProps extends TreeViewFinderProps { itemFilter?: (val: ElementAttributes) => boolean; expanded?: UUID[]; selected?: UUID[]; + fetchMetaData?: boolean; } function sortHandlingDirectories(a: TreeViewFinderNodeProps, b: TreeViewFinderNodeProps): number { @@ -180,6 +181,7 @@ export function DirectoryItemSelector({ expanded, selected, onClose, + fetchMetaData, ...otherTreeViewFinderProps }: Readonly) { const [data, setData] = useState([]); @@ -268,7 +270,10 @@ export function DirectoryItemSelector({ contentFilter().has(item.type) ); - if (childrenMatchedTypes.length > 0 && equipmentTypes && equipmentTypes.length > 0) { + if ( + childrenMatchedTypes.length > 0 && + ((equipmentTypes && equipmentTypes.length > 0) || fetchMetaData) + ) { fetchElementsInfos( childrenMatchedTypes.map((e: ElementAttributes) => e.elementUuid), types, @@ -296,7 +301,7 @@ export function DirectoryItemSelector({ console.warn(`Could not update subs (and content) of '${nodeId}' : ${error.message}`); }); }, - [types, equipmentTypes, itemFilter, contentFilter, addToDirectory] + [types, equipmentTypes, fetchMetaData, contentFilter, itemFilter, addToDirectory] ); // Helper function to fetch children for a node if not already loaded diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 052ba8332..069826d9b 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -5,25 +5,22 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { Chip, FormControl, Grid, IconButton, Theme, Tooltip } from '@mui/material'; +import { Box, Chip, FormControl, FormHelperText, Grid, IconButton, Theme, Tooltip } from '@mui/material'; import { Folder as FolderIcon } from '@mui/icons-material'; import { useCallback, useMemo, useState } from 'react'; import { FieldValues, useController, useFieldArray } from 'react-hook-form'; -import { useIntl } from 'react-intl'; +import { FormattedMessage, useIntl } from 'react-intl'; import { UUID } from 'crypto'; import { RawReadOnlyInput } from './RawReadOnlyInput'; -import { FieldLabel } from './utils/FieldLabel'; -import { useCustomFormContext } from './provider/useCustomFormContext'; -import { isFieldRequired } from './utils/functions'; -import { ErrorInput } from './errorManagement/ErrorInput'; -import { useSnackMessage } from '../../../hooks/useSnackMessage'; +import { FieldLabel, isFieldRequired } from './utils'; +import { useCustomFormContext } from './provider'; +import { ErrorInput, MidFormError } from './errorManagement'; +import { useSnackMessage } from '../../../hooks'; import { TreeViewFinderNodeProps } from '../../treeViewFinder'; -import { mergeSx } from '../../../utils/styles'; import { OverflowableText } from '../../overflowableText'; -import { MidFormError } from './errorManagement/MidFormError'; -import { DirectoryItemSelector } from '../../directoryItemSelector/DirectoryItemSelector'; +import { DirectoryItemSelector } from '../../directoryItemSelector'; import { fetchDirectoryElementPath } from '../../../services'; -import { ElementAttributes } from '../../../utils'; +import { BASE_EQUIPMENTS, ElementAttributes, EquipmentType, mergeSx } from '../../../utils'; import { NAME } from './constants'; const styles = { @@ -67,6 +64,12 @@ export interface DirectoryItemsInputProps { disable?: boolean; allowMultiSelect?: boolean; labelRequiredFromContext?: boolean; + equipmentColorsMap?: Map; +} + +interface EquipmentMetaData { + color: string; + translateLabel: string | undefined; } export function DirectoryItemsInput({ @@ -82,6 +85,7 @@ export function DirectoryItemsInput({ disable = false, allowMultiSelect = true, labelRequiredFromContext = true, + equipmentColorsMap, }: Readonly) { const { snackError } = useSnackMessage(); const intl = useIntl(); @@ -90,6 +94,7 @@ export function DirectoryItemsInput({ const [multiSelect, setMultiSelect] = useState(allowMultiSelect); const types = useMemo(() => [elementType], [elementType]); const [directoryItemSelectorOpen, setDirectoryItemSelectorOpen] = useState(false); + const [elementsMetadata, setElementsMetadata] = useState([]); const { fields: elements, append, @@ -118,6 +123,7 @@ export function DirectoryItemsInput({ remove(getValues(name).findIndex((item: FieldValues) => item.id === chip)); }); } + const currentColors = [...elementsMetadata]; values.forEach((value) => { const { icon, children, ...otherElementAttributes } = value; @@ -129,14 +135,36 @@ export function DirectoryItemsInput({ }); } else { append(otherElementAttributes); + if (equipmentColorsMap && value?.specificMetadata?.equipmentType) { + const type: EquipmentType = value?.specificMetadata?.equipmentType as EquipmentType; + currentColors.push({ + color: equipmentColorsMap.get(value.specificMetadata.equipmentType) ?? '', + translateLabel: + type !== EquipmentType.HVDC_LINE ? BASE_EQUIPMENTS[type]?.label : 'HvdcLines', + }); + } onRowChanged?.(true); onChange?.(getValues(name)); } }); setDirectoryItemSelectorOpen(false); setSelected([]); + if (equipmentColorsMap) { + setElementsMetadata(currentColors); + } }, - [append, getValues, snackError, name, onRowChanged, onChange, selected, remove] + [ + selected, + elementsMetadata, + equipmentColorsMap, + remove, + getValues, + name, + snackError, + append, + onRowChanged, + onChange, + ] ); const removeElements = useCallback( @@ -144,8 +172,12 @@ export function DirectoryItemsInput({ remove(index); onRowChanged?.(true); onChange?.(getValues(name)); + if (elementsMetadata.length > 0) { + const currentColors = [...elementsMetadata.slice(0, index), ...elementsMetadata.slice(index + 1)]; + setElementsMetadata(currentColors); + } }, - [onRowChanged, remove, getValues, name, onChange] + [remove, onRowChanged, onChange, getValues, name, elementsMetadata] ); const handleChipClick = useCallback( @@ -189,18 +221,28 @@ export function DirectoryItemsInput({ {elements?.length > 0 && ( {elements.map((item, index) => ( - removeElements(index)} - onClick={() => handleChipClick(index)} - label={ - } - sx={{ width: '100%' }} - /> - } - /> + + removeElements(index)} + onClick={() => handleChipClick(index)} + label={ + } + sx={{ width: '100%' }} + /> + } + /> + + {elementsMetadata?.[index]?.translateLabel ? ( + + ) : ( + '' + )} + + ))} )} @@ -241,6 +283,7 @@ export function DirectoryItemsInput({ selected={selected} expanded={expanded} multiSelect={multiSelect} + fetchMetaData={!!equipmentColorsMap} /> ); diff --git a/src/components/treeViewFinder/TreeViewFinder.tsx b/src/components/treeViewFinder/TreeViewFinder.tsx index e5a98f65e..4eb98cbf4 100644 --- a/src/components/treeViewFinder/TreeViewFinder.tsx +++ b/src/components/treeViewFinder/TreeViewFinder.tsx @@ -82,6 +82,9 @@ export interface TreeViewFinderNodeProps { childrenCount?: number; children?: TreeViewFinderNodeProps[]; parents?: TreeViewFinderNodeProps[]; + specificMetadata?: { + equipmentType: string; + }; } interface TreeViewFinderNodeMapProps { diff --git a/src/translations/en/equipmentsEn.ts b/src/translations/en/equipmentsEn.ts index 8940943e2..a752e47b1 100644 --- a/src/translations/en/equipmentsEn.ts +++ b/src/translations/en/equipmentsEn.ts @@ -24,4 +24,5 @@ export const equipmentsEn = { LccConverterStations: 'LCC converter stations', VscConverterStations: 'VSC converter stations', StaticVarCompensators: 'Static var compensators', + HvdcLines: 'HVDC lines', }; diff --git a/src/translations/fr/equipmentsFr.ts b/src/translations/fr/equipmentsFr.ts index 0c50ce6bc..c210cd137 100644 --- a/src/translations/fr/equipmentsFr.ts +++ b/src/translations/fr/equipmentsFr.ts @@ -24,4 +24,5 @@ export const equipmentsFr = { LccConverterStations: 'Stations de conversion LCC', VscConverterStations: 'Stations de conversion VSC', StaticVarCompensators: 'CSPR', + HvdcLines: 'lignes HVDC', }; diff --git a/src/utils/constants/fieldConstants.ts b/src/utils/constants/fieldConstants.ts index b79e24189..aa56af6cd 100644 --- a/src/utils/constants/fieldConstants.ts +++ b/src/utils/constants/fieldConstants.ts @@ -27,6 +27,7 @@ export enum FieldConstants { EQUIPMENT_TABLE = 'equipmentTable', EQUIPMENT_TYPE = 'equipmentType', FILTER_TYPE = 'filterType', + FILTERS = 'filters', FOLDER_ID = 'folderId', FOLDER_NAME = 'folderName', FORMATTED_CASE_PARAMETERS = 'formattedCaseParameters', @@ -37,6 +38,7 @@ export enum FieldConstants { NOMINAL_VOLTAGE_3 = 'nominalVoltage3', NOMINAL_VOLTAGE = 'nominalVoltage', OPERATION_TYPE = 'type', + PATH_NAME = 'pathName', PROPERTY_NAME = 'propertyName', PROPERTY_OPERATOR = 'propertyOperator', PROPERTY = 'PROPERTY', From cef7aeff4b6c2d3a4c769b18e7f93579e2fc81f1 Mon Sep 17 00:00:00 2001 From: basseche Date: Tue, 2 Sep 2025 16:47:45 +0200 Subject: [PATCH 2/7] fix directoryItemsInput --- .../DirectoryItemSelector.tsx | 2 +- .../reactHookForm/DirectoryItemsInput.tsx | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/components/directoryItemSelector/DirectoryItemSelector.tsx b/src/components/directoryItemSelector/DirectoryItemSelector.tsx index e8b2b5b71..b1c09725e 100644 --- a/src/components/directoryItemSelector/DirectoryItemSelector.tsx +++ b/src/components/directoryItemSelector/DirectoryItemSelector.tsx @@ -274,7 +274,7 @@ export function DirectoryItemSelector({ childrenMatchedTypes.length > 0 && ((equipmentTypes && equipmentTypes.length > 0) || fetchMetaData) ) { - fetchElementsInfos( + return fetchElementsInfos( childrenMatchedTypes.map((e: ElementAttributes) => e.elementUuid), types, equipmentTypes diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 069826d9b..31efb9506 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -123,7 +123,8 @@ export function DirectoryItemsInput({ remove(getValues(name).findIndex((item: FieldValues) => item.id === chip)); }); } - const currentColors = [...elementsMetadata]; + + const currentElementsMetadata = elementsMetadata ? [...elementsMetadata] : []; values.forEach((value) => { const { icon, children, ...otherElementAttributes } = value; @@ -137,7 +138,7 @@ export function DirectoryItemsInput({ append(otherElementAttributes); if (equipmentColorsMap && value?.specificMetadata?.equipmentType) { const type: EquipmentType = value?.specificMetadata?.equipmentType as EquipmentType; - currentColors.push({ + currentElementsMetadata.push({ color: equipmentColorsMap.get(value.specificMetadata.equipmentType) ?? '', translateLabel: type !== EquipmentType.HVDC_LINE ? BASE_EQUIPMENTS[type]?.label : 'HvdcLines', @@ -150,7 +151,7 @@ export function DirectoryItemsInput({ setDirectoryItemSelectorOpen(false); setSelected([]); if (equipmentColorsMap) { - setElementsMetadata(currentColors); + setElementsMetadata(currentElementsMetadata); } }, [ @@ -172,7 +173,7 @@ export function DirectoryItemsInput({ remove(index); onRowChanged?.(true); onChange?.(getValues(name)); - if (elementsMetadata.length > 0) { + if (elementsMetadata?.length > 0) { const currentColors = [...elementsMetadata.slice(0, index), ...elementsMetadata.slice(index + 1)]; setElementsMetadata(currentColors); } @@ -225,7 +226,12 @@ export function DirectoryItemsInput({ index + ? elementsMetadata?.[index]?.color + : undefined, + }} onDelete={() => removeElements(index)} onClick={() => handleChipClick(index)} label={ @@ -237,7 +243,13 @@ export function DirectoryItemsInput({ /> {elementsMetadata?.[index]?.translateLabel ? ( - + index + ? elementsMetadata?.[index]?.translateLabel + : undefined + } + /> ) : ( '' )} From e1105c2ef533983d7efb9f491b1c74287861001b Mon Sep 17 00:00:00 2001 From: basseche Date: Wed, 3 Sep 2025 18:56:32 +0200 Subject: [PATCH 3/7] Improve interface Signed-off-by: basseche --- .../reactHookForm/DirectoryItemsInput.tsx | 59 +++++-------------- src/utils/types/equipmentType.ts | 4 ++ 2 files changed, 18 insertions(+), 45 deletions(-) diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 31efb9506..74eeaebee 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -20,7 +20,7 @@ import { TreeViewFinderNodeProps } from '../../treeViewFinder'; import { OverflowableText } from '../../overflowableText'; import { DirectoryItemSelector } from '../../directoryItemSelector'; import { fetchDirectoryElementPath } from '../../../services'; -import { BASE_EQUIPMENTS, ElementAttributes, EquipmentType, mergeSx } from '../../../utils'; +import { getBasicEquipmentLabel, ElementAttributes, EquipmentType, mergeSx } from '../../../utils'; import { NAME } from './constants'; const styles = { @@ -67,11 +67,6 @@ export interface DirectoryItemsInputProps { equipmentColorsMap?: Map; } -interface EquipmentMetaData { - color: string; - translateLabel: string | undefined; -} - export function DirectoryItemsInput({ label, name, @@ -94,7 +89,6 @@ export function DirectoryItemsInput({ const [multiSelect, setMultiSelect] = useState(allowMultiSelect); const types = useMemo(() => [elementType], [elementType]); const [directoryItemSelectorOpen, setDirectoryItemSelectorOpen] = useState(false); - const [elementsMetadata, setElementsMetadata] = useState([]); const { fields: elements, append, @@ -102,6 +96,7 @@ export function DirectoryItemsInput({ } = useFieldArray({ name, }); + const elementsWithMetaData: TreeViewFinderNodeProps[] = elements as unknown as TreeViewFinderNodeProps[]; const formContext = useCustomFormContext(); const { getValues, validationSchema } = formContext; @@ -124,7 +119,6 @@ export function DirectoryItemsInput({ }); } - const currentElementsMetadata = elementsMetadata ? [...elementsMetadata] : []; values.forEach((value) => { const { icon, children, ...otherElementAttributes } = value; @@ -136,36 +130,14 @@ export function DirectoryItemsInput({ }); } else { append(otherElementAttributes); - if (equipmentColorsMap && value?.specificMetadata?.equipmentType) { - const type: EquipmentType = value?.specificMetadata?.equipmentType as EquipmentType; - currentElementsMetadata.push({ - color: equipmentColorsMap.get(value.specificMetadata.equipmentType) ?? '', - translateLabel: - type !== EquipmentType.HVDC_LINE ? BASE_EQUIPMENTS[type]?.label : 'HvdcLines', - }); - } onRowChanged?.(true); onChange?.(getValues(name)); } }); setDirectoryItemSelectorOpen(false); setSelected([]); - if (equipmentColorsMap) { - setElementsMetadata(currentElementsMetadata); - } }, - [ - selected, - elementsMetadata, - equipmentColorsMap, - remove, - getValues, - name, - snackError, - append, - onRowChanged, - onChange, - ] + [selected, remove, getValues, name, snackError, append, onRowChanged, onChange] ); const removeElements = useCallback( @@ -173,12 +145,8 @@ export function DirectoryItemsInput({ remove(index); onRowChanged?.(true); onChange?.(getValues(name)); - if (elementsMetadata?.length > 0) { - const currentColors = [...elementsMetadata.slice(0, index), ...elementsMetadata.slice(index + 1)]; - setElementsMetadata(currentColors); - } }, - [remove, onRowChanged, onChange, getValues, name, elementsMetadata] + [remove, onRowChanged, onChange, getValues, name] ); const handleChipClick = useCallback( @@ -213,23 +181,24 @@ export function DirectoryItemsInput({ )} error={!!error?.message} > - {elements?.length === 0 && label && ( + {elementsWithMetaData?.length === 0 && label && ( )} - {elements?.length > 0 && ( + {elementsWithMetaData?.length > 0 && ( - {elements.map((item, index) => ( + {elementsWithMetaData.map((item, index) => ( index - ? elementsMetadata?.[index]?.color + item.specificMetadata?.equipmentType && + equipmentColorsMap?.has(item.specificMetadata?.equipmentType) + ? equipmentColorsMap.get(item.specificMetadata.equipmentType) : undefined, }} onDelete={() => removeElements(index)} @@ -242,12 +211,12 @@ export function DirectoryItemsInput({ } /> - {elementsMetadata?.[index]?.translateLabel ? ( + {item?.specificMetadata?.equipmentType ? ( index - ? elementsMetadata?.[index]?.translateLabel - : undefined + item.specificMetadata.equipmentType !== EquipmentType.HVDC_LINE + ? getBasicEquipmentLabel(item.specificMetadata.equipmentType) + : 'HvdcLines' } /> ) : ( diff --git a/src/utils/types/equipmentType.ts b/src/utils/types/equipmentType.ts index 0f884ea73..5081f0116 100644 --- a/src/utils/types/equipmentType.ts +++ b/src/utils/types/equipmentType.ts @@ -136,6 +136,10 @@ export const BASE_EQUIPMENTS: Partial Date: Thu, 4 Sep 2025 09:25:17 +0200 Subject: [PATCH 4/7] restore useless changes Signed-off-by: basseche --- src/components/inputs/reactHookForm/DirectoryItemsInput.tsx | 5 ++--- src/utils/constants/fieldConstants.ts | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 74eeaebee..74c346fc9 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -118,7 +118,6 @@ export function DirectoryItemsInput({ remove(getValues(name).findIndex((item: FieldValues) => item.id === chip)); }); } - values.forEach((value) => { const { icon, children, ...otherElementAttributes } = value; @@ -137,7 +136,7 @@ export function DirectoryItemsInput({ setDirectoryItemSelectorOpen(false); setSelected([]); }, - [selected, remove, getValues, name, snackError, append, onRowChanged, onChange] + [append, getValues, snackError, name, onRowChanged, onChange, selected, remove] ); const removeElements = useCallback( @@ -146,7 +145,7 @@ export function DirectoryItemsInput({ onRowChanged?.(true); onChange?.(getValues(name)); }, - [remove, onRowChanged, onChange, getValues, name] + [onRowChanged, remove, getValues, name, onChange] ); const handleChipClick = useCallback( diff --git a/src/utils/constants/fieldConstants.ts b/src/utils/constants/fieldConstants.ts index aa56af6cd..24fc1ef0d 100644 --- a/src/utils/constants/fieldConstants.ts +++ b/src/utils/constants/fieldConstants.ts @@ -38,7 +38,6 @@ export enum FieldConstants { NOMINAL_VOLTAGE_3 = 'nominalVoltage3', NOMINAL_VOLTAGE = 'nominalVoltage', OPERATION_TYPE = 'type', - PATH_NAME = 'pathName', PROPERTY_NAME = 'propertyName', PROPERTY_OPERATOR = 'propertyOperator', PROPERTY = 'PROPERTY', From bf019775ac2328952e09b941d030ca906b859700 Mon Sep 17 00:00:00 2001 From: basseche Date: Thu, 4 Sep 2025 09:56:29 +0200 Subject: [PATCH 5/7] remove useless changes Signed-off-by: basseche --- .../directoryItemSelector/DirectoryItemSelector.tsx | 9 ++------- .../inputs/reactHookForm/DirectoryItemsInput.tsx | 1 - 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/components/directoryItemSelector/DirectoryItemSelector.tsx b/src/components/directoryItemSelector/DirectoryItemSelector.tsx index b1c09725e..c3dd37c47 100644 --- a/src/components/directoryItemSelector/DirectoryItemSelector.tsx +++ b/src/components/directoryItemSelector/DirectoryItemSelector.tsx @@ -159,7 +159,6 @@ export interface DirectoryItemSelectorProps extends TreeViewFinderProps { itemFilter?: (val: ElementAttributes) => boolean; expanded?: UUID[]; selected?: UUID[]; - fetchMetaData?: boolean; } function sortHandlingDirectories(a: TreeViewFinderNodeProps, b: TreeViewFinderNodeProps): number { @@ -181,7 +180,6 @@ export function DirectoryItemSelector({ expanded, selected, onClose, - fetchMetaData, ...otherTreeViewFinderProps }: Readonly) { const [data, setData] = useState([]); @@ -270,10 +268,7 @@ export function DirectoryItemSelector({ contentFilter().has(item.type) ); - if ( - childrenMatchedTypes.length > 0 && - ((equipmentTypes && equipmentTypes.length > 0) || fetchMetaData) - ) { + if (childrenMatchedTypes.length > 0 && equipmentTypes && equipmentTypes.length > 0) { return fetchElementsInfos( childrenMatchedTypes.map((e: ElementAttributes) => e.elementUuid), types, @@ -301,7 +296,7 @@ export function DirectoryItemSelector({ console.warn(`Could not update subs (and content) of '${nodeId}' : ${error.message}`); }); }, - [types, equipmentTypes, fetchMetaData, contentFilter, itemFilter, addToDirectory] + [types, equipmentTypes, itemFilter, contentFilter, addToDirectory] ); // Helper function to fetch children for a node if not already loaded diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 74c346fc9..4e4f78801 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -263,7 +263,6 @@ export function DirectoryItemsInput({ selected={selected} expanded={expanded} multiSelect={multiSelect} - fetchMetaData={!!equipmentColorsMap} /> ); From 20e1f4dec49d5ec3a5675c6a8da2e2037c3c0e99 Mon Sep 17 00:00:00 2001 From: basseche Date: Tue, 9 Sep 2025 15:09:11 +0200 Subject: [PATCH 6/7] add field --- src/utils/constants/fieldConstants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/constants/fieldConstants.ts b/src/utils/constants/fieldConstants.ts index 24fc1ef0d..5adf92662 100644 --- a/src/utils/constants/fieldConstants.ts +++ b/src/utils/constants/fieldConstants.ts @@ -38,6 +38,7 @@ export enum FieldConstants { NOMINAL_VOLTAGE_3 = 'nominalVoltage3', NOMINAL_VOLTAGE = 'nominalVoltage', OPERATION_TYPE = 'type', + TYPE = 'type', PROPERTY_NAME = 'propertyName', PROPERTY_OPERATOR = 'propertyOperator', PROPERTY = 'PROPERTY', From 1c942b00e9cefb29237f09e2077423fe8caf89e8 Mon Sep 17 00:00:00 2001 From: basseche Date: Wed, 10 Sep 2025 10:08:02 +0200 Subject: [PATCH 7/7] Improve Function --- .../inputs/reactHookForm/DirectoryItemsInput.tsx | 8 ++------ src/utils/types/equipmentType.ts | 7 ++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx index 4e4f78801..473f9fbdf 100644 --- a/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx +++ b/src/components/inputs/reactHookForm/DirectoryItemsInput.tsx @@ -20,7 +20,7 @@ import { TreeViewFinderNodeProps } from '../../treeViewFinder'; import { OverflowableText } from '../../overflowableText'; import { DirectoryItemSelector } from '../../directoryItemSelector'; import { fetchDirectoryElementPath } from '../../../services'; -import { getBasicEquipmentLabel, ElementAttributes, EquipmentType, mergeSx } from '../../../utils'; +import { getBasicEquipmentLabel, ElementAttributes, mergeSx } from '../../../utils'; import { NAME } from './constants'; const styles = { @@ -212,11 +212,7 @@ export function DirectoryItemsInput({ {item?.specificMetadata?.equipmentType ? ( ) : ( '' diff --git a/src/utils/types/equipmentType.ts b/src/utils/types/equipmentType.ts index 5081f0116..ad626e3ba 100644 --- a/src/utils/types/equipmentType.ts +++ b/src/utils/types/equipmentType.ts @@ -137,7 +137,12 @@ export const BASE_EQUIPMENTS: Partial