Show circuit protection in saved layouts

This commit is contained in:
2026-07-31 09:45:58 +02:00
parent f4bfef9071
commit 2964205a27
3 changed files with 87 additions and 7 deletions
@@ -30,8 +30,10 @@ import {
formatPhaseTypeLabel,
formatValue,
getCircuitSectionLabel,
getLegacyProjectColumnLayoutStorageKey,
getProjectColumnLayoutStorageKey,
isGridEditorControlTarget,
migrateLegacyColumnLayout,
normalizeColumnOrder,
parseStoredColumnLayout,
} from "../utils/circuit-grid-model";
@@ -374,14 +376,23 @@ export function CircuitTreeEditor(props: { projectId: string; circuitListId: str
setColumnOrder(allColumns.map((column) => column.key));
setVisibleColumnKeys(defaultVisibleColumnKeys);
try {
const parsed = parseStoredColumnLayout(
localStorage.getItem(
getProjectColumnLayoutStorageKey(projectId)
) ??
localStorage.getItem(
LEGACY_COLUMN_LAYOUT_STORAGE_KEY
)
const currentLayout = parseStoredColumnLayout(
localStorage.getItem(getProjectColumnLayoutStorageKey(projectId))
);
const legacyLayout =
parseStoredColumnLayout(
localStorage.getItem(
getLegacyProjectColumnLayoutStorageKey(projectId)
)
) ??
parseStoredColumnLayout(
localStorage.getItem(LEGACY_COLUMN_LAYOUT_STORAGE_KEY)
);
const parsed =
currentLayout ??
(legacyLayout
? migrateLegacyColumnLayout(legacyLayout)
: null);
if (!parsed) {
return;
}
+30
View File
@@ -129,6 +129,8 @@ export const defaultVisibleColumnKeys = allColumns
.map((column) => column.key);
const projectColumnLayoutStoragePrefix =
"circuitTreeEditor.columnLayout.v3";
const legacyProjectColumnLayoutStoragePrefix =
"circuitTreeEditor.columnLayout.v2";
export interface CircuitColumnLayout {
@@ -162,6 +164,12 @@ export function getProjectColumnLayoutStorageKey(
return `${projectColumnLayoutStoragePrefix}.${projectId}`;
}
export function getLegacyProjectColumnLayoutStorageKey(
projectId: string
): string {
return `${legacyProjectColumnLayoutStoragePrefix}.${projectId}`;
}
export function normalizeColumnOrder(keys: CellKey[]): CellKey[] {
const unique = [...new Set(keys)];
const allKeys = allColumns.map((column) => column.key);
@@ -225,6 +233,28 @@ export function parseStoredColumnLayout(
}
}
export function migrateLegacyColumnLayout(
layout: CircuitColumnLayout
): CircuitColumnLayout {
const newlyVisibleKey: CellKey = "protectionSummary";
const order = layout.order.filter(
(key) => key !== newlyVisibleKey
) as CellKey[];
const totalPowerIndex = order.indexOf("rowTotalPower");
order.splice(
totalPowerIndex >= 0 ? totalPowerIndex + 1 : order.length,
0,
newlyVisibleKey
);
return {
order,
visible: layout.visible.includes(newlyVisibleKey)
? layout.visible
: [...layout.visible, newlyVisibleKey],
};
}
const deviceOnlyColumns = new Set<CellKey>([
"quantity",
"powerPerUnit",