From 9bf86c7e9ed166ce68c6b82c504a75e2b270c4e9 Mon Sep 17 00:00:00 2001 From: Chneemann Date: Mon, 10 Aug 2026 14:33:41 +0200 Subject: [PATCH] `feat(dashboard): add modular KanbanBoardHeader component and integrate it into the board layout` --- app/(app)/dashboard/KanbanBoard.tsx | 39 +++++++++++-------- .../components/KanbanBoardHeader.tsx | 35 +++++++++++++++++ 2 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 app/(app)/dashboard/components/KanbanBoardHeader.tsx diff --git a/app/(app)/dashboard/KanbanBoard.tsx b/app/(app)/dashboard/KanbanBoard.tsx index 32636da..08be5e8 100644 --- a/app/(app)/dashboard/KanbanBoard.tsx +++ b/app/(app)/dashboard/KanbanBoard.tsx @@ -9,6 +9,7 @@ import { useState, useTransition } from "react"; import { useRouter } from "next/navigation"; import KanbanColumn from "./KanbanColumn"; import { KANBAN_COLUMNS, Task, TaskStatus } from "@/types/tasks"; +import KanbanBoardHeader from "./components/KanbanBoardHeader"; /** * Renders the responsive grid container of kanban columns, coordinating state tracking @@ -61,22 +62,28 @@ export default function KanbanBoard({ tasks }: { tasks: Task[] }) { }; return ( -
- {KANBAN_COLUMNS.map((col) => { - const columnTasks = tasks.filter((t) => t.status === col.id); - return ( - - ); - })} +
+ {/* Workspace Header */} + + + {/* Kanban Columns Grid */} +
+ {KANBAN_COLUMNS.map((col) => { + const columnTasks = tasks.filter((t) => t.status === col.id); + return ( + + ); + })} +
); } diff --git a/app/(app)/dashboard/components/KanbanBoardHeader.tsx b/app/(app)/dashboard/components/KanbanBoardHeader.tsx new file mode 100644 index 0000000..7906d9d --- /dev/null +++ b/app/(app)/dashboard/components/KanbanBoardHeader.tsx @@ -0,0 +1,35 @@ +/** + * @file dashboard/components/KanbanBoardHeader.tsx + * @description Component rendering the top title header and action buttons for the dashboard view. + */ + +import { Plus, Sparkles } from "lucide-react"; + +/** + * Renders the dashboard header section including title, subtitle, workspace indicator, and action triggers. + * + * @returns {JSX.Element} The rendered dashboard header component. + */ +export default function KanbanBoardHeader() { + return ( +
+
+
+ + Workspace +
+

Dashboard

+

+ Manage your tasks and keep track of your progress. +

+
+ +
+ +
+
+ ); +}