diff --git a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx index 9243863f7b9..6cb03dd668f 100644 --- a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx +++ b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerDetail.tsx @@ -1,9 +1,9 @@ +import { useQuery } from '@tanstack/react-query' import { useParams } from 'common' import dayjs from 'dayjs' import { Clock, Container, Copy, Info } from 'lucide-react' import Link from 'next/link' import { parseAsStringEnum, useQueryState } from 'nuqs' -import { useEffect } from 'react' import { BreadcrumbItem, BreadcrumbLink, @@ -33,6 +33,7 @@ import { PageHeaderTitle, } from 'ui-patterns/PageHeader' import { PageNav } from 'ui-patterns/PageNav' +import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { RuntimeBadge } from '../RuntimeBadge' import { WorkerSnippetTabs } from '../WorkerSnippetTabs' @@ -40,8 +41,9 @@ import { WorkerStatePill } from '../WorkerStatePill' import { WorkerLogsTab } from './WorkerLogsTab' import { WorkerOverviewTab } from './WorkerOverviewTab' import { WorkerSettingsTab } from './WorkerSettingsTab' +import { AlertError } from '@/components/ui/AlertError' +import { workerQueryOptions } from '@/data/workers/worker-query' import { PRODUCT_NAME } from '@/lib/constants/workers' -import { ensureProjectSeeded, useProjectWorkers } from '@/state/workers-mock-state' type WorkerTab = 'overview' | 'logs' | 'settings' const WORKER_TABS: WorkerTab[] = ['overview', 'logs', 'settings'] @@ -64,15 +66,19 @@ export const WorkerDetail = () => { .withOptions({ history: 'push' }) ) - useEffect(() => { - ensureProjectSeeded(projectRef) - }, [projectRef]) - - const workers = useProjectWorkers(projectRef) - const worker = workers.find((w) => w.name === workerName) + const { + data: worker, + error, + isPending, + isError, + } = useQuery(workerQueryOptions({ projectRef, name: workerName })) if (!projectRef) return null + if (isPending) return + + if (isError) return + if (!worker) { return (
@@ -102,7 +108,6 @@ export const WorkerDetail = () => { - {/* Worker title + summary, aligned with the breadcrumb/nav gutters */} diff --git a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerOverviewTab.tsx b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerOverviewTab.tsx index 13747a47144..66793366c0a 100644 --- a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerOverviewTab.tsx +++ b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerOverviewTab.tsx @@ -98,7 +98,6 @@ export const WorkerOverviewTab = ({ projectRef, worker }: WorkerOverviewTabProps return ( <> - {/* Metrics breakdown band */}
@@ -155,7 +154,6 @@ export const WorkerOverviewTab = ({ projectRef, worker }: WorkerOverviewTabProps - {/* Errors */} @@ -203,7 +201,6 @@ export const WorkerOverviewTab = ({ projectRef, worker }: WorkerOverviewTabProps - {/* Performance */} @@ -261,7 +258,6 @@ export const WorkerOverviewTab = ({ projectRef, worker }: WorkerOverviewTabProps - {/* Usage */} diff --git a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerSettingsTab.tsx b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerSettingsTab.tsx index ece6f0c7e72..c4d9564090e 100644 --- a/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerSettingsTab.tsx +++ b/apps/studio/components/interfaces/Workers/WorkerDetail/WorkerSettingsTab.tsx @@ -64,7 +64,6 @@ export const WorkerSettingsTab = ({ worker }: WorkerSettingsTabProps) => { return ( <> - {/* Container */} @@ -96,7 +95,6 @@ export const WorkerSettingsTab = ({ worker }: WorkerSettingsTabProps) => { - {/* Resources */} @@ -125,7 +123,6 @@ export const WorkerSettingsTab = ({ worker }: WorkerSettingsTabProps) => { - {/* Invoke worker */} @@ -140,7 +137,6 @@ export const WorkerSettingsTab = ({ worker }: WorkerSettingsTabProps) => { - {/* Develop locally */} @@ -163,7 +159,6 @@ export const WorkerSettingsTab = ({ worker }: WorkerSettingsTabProps) => { - {/* Agents & skills */}