From f69878b082884663706d69518b5257820be622b1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 19 Jul 2025 20:30:05 +0300 Subject: [PATCH] refactor(views/board): use branches instead of notes --- .../widgets/view_widgets/board_view/data.ts | 28 ++++++++++++------- .../widgets/view_widgets/board_view/index.ts | 13 ++++++--- 2 files changed, 27 insertions(+), 14 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 8b3407270..9f5d06929 100644 --- a/apps/client/src/widgets/view_widgets/board_view/data.ts +++ b/apps/client/src/widgets/view_widgets/board_view/data.ts @@ -1,11 +1,23 @@ +import FBranch from "../../../entities/fbranch"; import FNote from "../../../entities/fnote"; -import froca from "../../../services/froca"; -export async function getBoardData(noteIds: string[], groupByColumn: string) { - const notes = await froca.getNotes(noteIds); - const byColumn: Map = new Map(); +export async function getBoardData(parentNote: FNote, groupByColumn: string) { + const byColumn: Map = new Map(); + + await recursiveGroupBy(parentNote.getChildBranches(), byColumn, groupByColumn); + + return { + byColumn + }; +} + +async function recursiveGroupBy(branches: FBranch[], byColumn: Map, groupByColumn: string) { + for (const branch of branches) { + const note = await branch.getNote(); + if (!note) { + continue; + } - for (const note of notes) { const group = note.getLabelValue(groupByColumn); if (!group) { continue; @@ -14,10 +26,6 @@ export async function getBoardData(noteIds: string[], groupByColumn: string) { if (!byColumn.has(group)) { byColumn.set(group, []); } - byColumn.get(group)!.push(note); + byColumn.get(group)!.push(branch); } - - return { - byColumn - }; } 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 e6d2ba1f5..be5a27432 100644 --- a/apps/client/src/widgets/view_widgets/board_view/index.ts +++ b/apps/client/src/widgets/view_widgets/board_view/index.ts @@ -120,11 +120,11 @@ export default class BoardView extends ViewMode { } private async renderBoard(el: HTMLElement) { - const data = await getBoardData(this.noteIds, "status"); + const data = await getBoardData(this.parentNote, "status"); for (const column of data.byColumn.keys()) { - const columnNotes = data.byColumn.get(column); - if (!columnNotes) { + const columnBranches = data.byColumn.get(column); + if (!columnBranches) { continue; } @@ -145,7 +145,12 @@ export default class BoardView extends ViewMode { // Setup drop zone for the column this.setupColumnDropZone($columnEl, column); - for (const note of columnNotes) { + for (const branch of columnBranches) { + const note = await branch.getNote(); + if (!note) { + continue; + } + const $iconEl = $("") .addClass("icon") .addClass(note.getIcon());