From 0de8f3837fe4d7228cad27137c6064b017db41bb Mon Sep 17 00:00:00 2001 From: bot-hermes Date: Wed, 29 Jul 2026 15:26:02 +0000 Subject: [PATCH] fix: restore domainId prop to TasksKanbanView and TasksListView --- apps/web/app/(dashboard)/tasks/page.tsx | 32 +++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/apps/web/app/(dashboard)/tasks/page.tsx b/apps/web/app/(dashboard)/tasks/page.tsx index 5cec718..955f0d0 100644 --- a/apps/web/app/(dashboard)/tasks/page.tsx +++ b/apps/web/app/(dashboard)/tasks/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import { LayoutGrid, List, Plus } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; @@ -13,8 +13,24 @@ import { RealtimeProvider } from "@/components/realtime-provider"; export default function TasksPage() { const [view, setView] = useState<"kanban" | "list">("kanban"); const [refreshKey, setRefreshKey] = useState(0); + const [domainId, setDomainId] = useState(null); + const [domains, setDomains] = useState<{ id: string; name: string; color: string | null }[]>([]); const { open, openCreate, closeCreate } = useCreateDialogStore(); + // Fetch domains and select first one + useEffect(() => { + fetch('/api/domains?sort=sort_order') + .then((res) => res.json()) + .then((data) => { + const items = data.items || []; + setDomains(items); + if (items.length > 0 && !domainId) { + setDomainId(items[0].id); + } + }) + .catch(() => {}); + }, []); // eslint-disable-line react-hooks/exhaustive-deps + return (
@@ -24,6 +40,18 @@ export default function TasksPage() {

Move work forward without losing the thread.

+ {domains.length > 1 && ( + + )}
- {view === "kanban" ? : } + {domainId && (view === "kanban" ? : )} (o ? openCreate("task") : closeCreate())} onCreated={() => setRefreshKey((k) => k + 1)} />