in src/app/devices/deviceEvents/components/deviceSimulationPanel.tsx [134:181]
name: t(ResourceKeys.deviceEvents.simulation.advanced.properties.delete),
onClick: handleDelete
},
]}
/>
<MarqueeSelection selection={selection}>
<ResizableDetailsList
items={properties}
columns={getColumns()}
onRenderItemColumn={renderItemColumn}
ariaLabelForSelectionColumn={t(ResourceKeys.deviceEvents.simulation.advanced.properties.toggleSelectionColumnAriaLabel)}
ariaLabelForSelectAllCheckbox={t(ResourceKeys.deviceEvents.simulation.advanced.properties.selectAllCheckboxAriaLabel)}
checkButtonAriaLabel={t(ResourceKeys.deviceEvents.simulation.advanced.properties.rowCheckBoxAriaLabel)}
selection={selection}
/>
</MarqueeSelection>
</>
);
};
const renderItemColumn = (item: PropertyItem, index: number, column: IColumn) => {
const handleEditCustomPropertyKey = (event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string) => {
const items = [...properties];
items[index] = {...items[index], keyName: newValue};
setProperties(items);
};
switch (column.key) {
case 'key':
const hasDuplicateKey = (keyName: string) => keyName && properties.filter(property => property.keyName === keyName).length > 1;
return (
<TextField
ariaLabel={t(ResourceKeys.deviceEvents.simulation.advanced.properties.key)}
errorMessage={hasDuplicateKey(item.keyName) && t(ResourceKeys.deviceEvents.simulation.advanced.properties.keyDup)}
value={item.keyName}
onChange={handleEditCustomPropertyKey}
/>);
case 'value':
return renderItemValueColumn(item, column);
default:
return <></>;
}
};
const findMatchingItemIndex = (property: PropertyItem): number => {
let indexFound = -1;
properties.forEach((element, index) => {
if (element.index === property.index) {