From 37c9260dcab7d3adc598c6d1cee9c114da8a3841 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 20 Jul 2025 10:50:26 +0300 Subject: [PATCH] feat(views/board): keep empty columns --- .../widgets/view_widgets/board_view/data.ts | 35 ++++++++++--------- .../widgets/view_widgets/board_view/index.ts | 5 ++- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/apps/client/src/widgets/view_widgets/board_view/data.ts b/apps/client/src/widgets/view_widgets/board_view/data.ts index 7ace172d1..bb3095e89 100644 --- a/apps/client/src/widgets/view_widgets/board_view/data.ts +++ b/apps/client/src/widgets/view_widgets/board_view/data.ts @@ -10,28 +10,31 @@ type ColumnMap = Map c.value) || []; - for (const column of existingColumns) { - if (!byColumn.has(column)) { - byColumn.set(column, []); - } + // Check if we have new columns. + const existingColumns = persistedData.columns?.map(c => c.value) || []; + for (const column of existingColumns) { + if (!byColumn.has(column)) { + byColumn.set(column, []); } + } - const newColumns = [...byColumn.keys()] - .filter(column => !existingColumns.includes(column)) - .map(column => ({ value: column })); + const newColumns = [...byColumn.keys()] + .filter(column => !existingColumns.includes(column)) + .map(column => ({ value: column })); - if (newColumns.length > 0) { - newPersistedData = { - ...persistedData, - columns: [...(persistedData.columns || []), ...newColumns] - }; - } + if (newColumns.length > 0) { + newPersistedData = { + ...persistedData, + columns: [...(persistedData.columns || []), ...newColumns] + }; } return { diff --git a/apps/client/src/widgets/view_widgets/board_view/index.ts b/apps/client/src/widgets/view_widgets/board_view/index.ts index b85368c0b..21f2c2105 100644 --- a/apps/client/src/widgets/view_widgets/board_view/index.ts +++ b/apps/client/src/widgets/view_widgets/board_view/index.ts @@ -149,7 +149,10 @@ export default class BoardView extends ViewMode { } private async renderBoard(el: HTMLElement) { - const data = await getBoardData(this.parentNote, "status", this.persistentData); + const persistedData = await this.viewStorage.restore() ?? this.persistentData; + this.persistentData = persistedData; + + const data = await getBoardData(this.parentNote, "status", persistedData); if (data.newPersistedData) { this.persistentData = data.newPersistedData;