From e950d5b4567f2d2b55d6b53c41d8b67d21a526fc Mon Sep 17 00:00:00 2001 From: liangfung Date: Tue, 16 Jun 2026 10:52:12 +0800 Subject: [PATCH] feat(site): add back-to-tasks navigation and skeleton loading for tasks page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds back-to-tasks navigation on the run page using the canonical back-button design, and standardizes the back-button styling on the tasks page. Also introduces a layout-matching skeleton component for the tasks page Suspense fallback to improve loading UX. 🤖 Generated with [Pochi](https://getpochi.com) | [Task](https://app.getpochi.com/share/p-59a8a5bd98434f1a97c0fad1da19dfd9) Co-Authored-By: Pochi --- .../run/components/trajectory-page.tsx | 2 +- .../jobs/[jobName]/[trialName]/run/page.tsx | 62 +++++++++------- .../tasks/components/tasks-page-client.tsx | 9 ++- .../tasks/components/tasks-page-skeleton.tsx | 70 +++++++++++++++++++ site/app/tasks/page.tsx | 15 ++-- 5 files changed, 125 insertions(+), 33 deletions(-) create mode 100644 site/app/tasks/components/tasks-page-skeleton.tsx diff --git a/site/app/jobs/[jobName]/[trialName]/run/components/trajectory-page.tsx b/site/app/jobs/[jobName]/[trialName]/run/components/trajectory-page.tsx index 0fab8fc83c..c9fd06728b 100644 --- a/site/app/jobs/[jobName]/[trialName]/run/components/trajectory-page.tsx +++ b/site/app/jobs/[jobName]/[trialName]/run/components/trajectory-page.tsx @@ -192,7 +192,7 @@ export function TrajectoryPage({ return (
-
+
-
-
-
-

- {headerTitle} -

- - - Task - -
-
-
- - - {statusMeta.label} - @{startedAt} - - Duration: {executionDurationLabel} +
+
+ + + Back to Tasks + +
+
+

+ {headerTitle} +

+ + + Task + +
+
+
+ + + {statusMeta.label} + @{startedAt} + + Duration: {executionDurationLabel} +
@@ -391,4 +401,4 @@ export default async function TrajectoryRoutePage({
); -} \ No newline at end of file +} diff --git a/site/app/tasks/components/tasks-page-client.tsx b/site/app/tasks/components/tasks-page-client.tsx index 64197f420a..9e45586758 100644 --- a/site/app/tasks/components/tasks-page-client.tsx +++ b/site/app/tasks/components/tasks-page-client.tsx @@ -9,6 +9,7 @@ import { ArrowUpDown, ArrowUp, ArrowDown, + ArrowLeft, Filter, X, ExternalLink, @@ -440,8 +441,12 @@ export function TasksPageClient({ tasksData }: TasksPageClientProps) {
- - ← Back to Leaderboard + + + Back to Leaderboard
diff --git a/site/app/tasks/components/tasks-page-skeleton.tsx b/site/app/tasks/components/tasks-page-skeleton.tsx new file mode 100644 index 0000000000..73b99895ee --- /dev/null +++ b/site/app/tasks/components/tasks-page-skeleton.tsx @@ -0,0 +1,70 @@ +import Link from "next/link"; +import { ArrowLeft, Filter, Search } from "lucide-react"; +import { Skeleton } from "@/components/ui/skeleton"; + +export function TasksPageSkeleton() { + return ( +
+
+
+ + + Back to Leaderboard + +
+
+

+ Task +

+

+ Detailed breakdown of individual task performance across different models. +

+
+
+ + {/* Filter bar skeleton */} +
+
+
+ +
+
+ + +
+
+
+ + +
+
+ + {/* Table skeleton */} +
+
+ +
+
+ {Array.from({ length: 12 }).map((_, i) => ( +
+ +
+ + + + + +
+
+ ))} +
+
+
+ ); +} diff --git a/site/app/tasks/page.tsx b/site/app/tasks/page.tsx index 128a61840e..75b8a88c76 100644 --- a/site/app/tasks/page.tsx +++ b/site/app/tasks/page.tsx @@ -1,8 +1,11 @@ import { Suspense } from "react"; +import Link from "next/link"; +import { ArrowLeft } from "lucide-react"; import tasksDataRaw from "@/zealt/tasks.json"; import pendingTasksData from "@/zealt/pending-tasks.json"; import PendingReviewCard from "@/components/pending-review-card"; import { TasksPageClient, type CompactTask, type CompactTrial } from "./components/tasks-page-client"; +import { TasksPageSkeleton } from "./components/tasks-page-skeleton"; type RawTaskTrial = { task_name?: string; @@ -105,9 +108,13 @@ export default function TasksPage() {
- - ← Back to Leaderboard - + + + Back to Leaderboard +

@@ -119,7 +126,7 @@ export default function TasksPage() {

) : ( - Loading tasks...
}> + }> )}