From 9b1cd38cc197b3f015a95eea9e67f0e792c9ac3e Mon Sep 17 00:00:00 2001 From: marlon-erler Date: Fri, 12 Jul 2024 02:02:49 +0200 Subject: [PATCH] sort kanban items by priority --- dist/index.js | 14 +++++++++----- src/Views/Objects/kanbanView.tsx | 33 +++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/dist/index.js b/dist/index.js index 333299b8..e06448c3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1478,7 +1478,10 @@ const boardTitle = latest.categoryName; if (!boards.value.has(boardTitle)) boards.set(boardTitle, { title: boardTitle, items: [] }); - boards.value.get(boardTitle)?.items.push(messageObject); + boards.value.get(boardTitle)?.items.push({ + priority: latest.priority ?? 0, + messageObject + }); }); }); const content = createProxyState( @@ -1497,7 +1500,8 @@ () => editingBoardTitle.value == kanbanBoard.title || editingBoardTitle.value == "" ); function renameBoard() { - kanbanBoard.items.forEach((messageObject) => { + kanbanBoard.items.forEach((kanbanBoardItem) => { + const { messageObject } = kanbanBoardItem; const latest = chat.getMostRecentContent(messageObject); latest.categoryName = editingBoardTitle.value; chat.addObjectAndSend(messageObject); @@ -1536,10 +1540,10 @@ /* @__PURE__ */ createElement("span", { class: "icon" }, "edit") )), /* @__PURE__ */ createElement("hr", null), - /* @__PURE__ */ createElement("div", { class: "flex-column gap padding-bottom" }, ...kanbanBoard.items.map( - (messageObject) => ObjectEntryView( + /* @__PURE__ */ createElement("div", { class: "flex-column gap padding-bottom" }, ...kanbanBoard.items.sort((a, b) => b.priority - a.priority).map( + (kanbanBoardItem) => ObjectEntryView( chat, - messageObject, + kanbanBoardItem.messageObject, selectedObject, isShowingObjectModal ) diff --git a/src/Views/Objects/kanbanView.tsx b/src/Views/Objects/kanbanView.tsx index c676395b..b4587a6f 100644 --- a/src/Views/Objects/kanbanView.tsx +++ b/src/Views/Objects/kanbanView.tsx @@ -9,7 +9,12 @@ import { translation } from "../../translations"; interface KanbanBoard { title: string; - items: MessageObject[]; + items: KanbanBoardItem[]; +} + +interface KanbanBoardItem { + priority: number; + messageObject: MessageObject; } export function KanbanView( @@ -30,7 +35,10 @@ export function KanbanView( if (!boards.value.has(boardTitle)) boards.set(boardTitle, { title: boardTitle, items: [] }); - boards.value.get(boardTitle)?.items.push(messageObject); + boards.value.get(boardTitle)?.items.push({ + priority: latest.priority ?? 0, + messageObject, + }); }); }); @@ -69,7 +77,8 @@ function KanbanBoardView( ); function renameBoard() { - kanbanBoard.items.forEach((messageObject) => { + kanbanBoard.items.forEach((kanbanBoardItem) => { + const { messageObject } = kanbanBoardItem; const latest = chat.getMostRecentContent(messageObject); latest.categoryName = editingBoardTitle.value; chat.addObjectAndSend(messageObject); @@ -117,14 +126,16 @@ function KanbanBoardView(
- {...kanbanBoard.items.map((messageObject) => - ObjectEntryView( - chat, - messageObject, - selectedObject, - isShowingObjectModal - ) - )} + {...kanbanBoard.items + .sort((a, b) => b.priority - a.priority) + .map((kanbanBoardItem) => + ObjectEntryView( + chat, + kanbanBoardItem.messageObject, + selectedObject, + isShowingObjectModal + ) + )}
);