[taskboard] refactor tasks into full-page workspace

This commit is contained in:
2026-03-07 13:34:15 -08:00
parent 430dcd209b
commit 2bf137a437
11 changed files with 452 additions and 351 deletions

View File

@@ -1,13 +1,5 @@
import { DispatchHistory } from "@/components/dispatch-history";
import { listFailedTasks, listTaskEvents } from "@/lib/tasks";
import { redirect } from "next/navigation";
export const dynamic = "force-dynamic";
export default async function DispatchPage() {
const [events, failedTasks] = await Promise.all([
listTaskEvents(undefined, 50),
listFailedTasks(),
]);
return <DispatchHistory events={events} failedTasks={failedTasks} />;
export default function DispatchPage() {
redirect("/tasks/dispatch");
}

View File

@@ -0,0 +1,9 @@
import { DispatchHistory } from "@/components/dispatch-history";
import { listTaskEvents } from "@/lib/tasks";
export const dynamic = "force-dynamic";
export default async function TasksDispatchPage() {
const events = await listTaskEvents(undefined, 50);
return <DispatchHistory events={events} />;
}

View File

@@ -0,0 +1,9 @@
import { FailureQueue } from "@/components/failure-queue";
import { listFailedTasks } from "@/lib/tasks";
export const dynamic = "force-dynamic";
export default async function TasksFailuresPage() {
const failedTasks = await listFailedTasks();
return <FailureQueue failedTasks={failedTasks} />;
}

14
app/tasks/layout.tsx Normal file
View File

@@ -0,0 +1,14 @@
import { TasksSubnav } from "@/components/tasks-subnav";
export default function TasksLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<div className="min-w-0">
<TasksSubnav />
{children}
</div>
);
}

View File

@@ -1,15 +1,14 @@
import { TasksClient } from "@/components/tasks-client";
import { listFleetAgents } from "@/lib/agents";
import { listTaskEvents, listTaskTemplates, listTasks } from "@/lib/tasks";
import { listTaskTemplates, listTasks } from "@/lib/tasks";
export const dynamic = "force-dynamic";
export default async function TasksPage() {
const [tasks, agents, templates, events] = await Promise.all([
const [tasks, agents, templates] = await Promise.all([
listTasks(),
listFleetAgents(),
listTaskTemplates(),
listTaskEvents(undefined, 12),
]);
return <TasksClient initialTasks={tasks} initialEvents={events} agents={agents} templates={templates} />;
return <TasksClient initialTasks={tasks} agents={agents} templates={templates} />;
}