Skip to content

Commit 4fbe010

Browse files
committed
chore: Disable tabs when no data is available
1 parent 479f17d commit 4fbe010

File tree

3 files changed

+42
-6
lines changed

3 files changed

+42
-6
lines changed

frontend/src/components/ui/tabs.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function TabsTrigger<T extends string = string>({
5353
<TabsPrimitive.Trigger
5454
data-slot="tabs-trigger"
5555
className={cn(
56-
"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
56+
"data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[disabled=true]:text-muted-foreground data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
5757
className,
5858
)}
5959
{...props}

frontend/src/routes/_app/diagnostics.$providerSlug.$diagnosticSlug/route.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,30 @@ const DiagnosticInfoLayout = () => {
121121
Execution Groups
122122
</Link>
123123
</TabsTrigger>
124-
<TabsTrigger value="scalars" asChild>
124+
<TabsTrigger
125+
value="scalars"
126+
asChild
127+
disabled={!data.has_scalar_values}
128+
data-disabled={!data.has_scalar_values ? "true" : undefined}
129+
>
125130
<Link
126131
to="/diagnostics/$providerSlug/$diagnosticSlug/scalars"
127132
params={{ providerSlug, diagnosticSlug }}
133+
disabled={!data.has_scalar_values}
128134
>
129135
Scalar Values
130136
</Link>
131137
</TabsTrigger>
132-
<TabsTrigger value="series" asChild>
138+
<TabsTrigger
139+
value="series"
140+
asChild
141+
disabled={!data.has_series_values}
142+
>
133143
<Link
134144
to="/diagnostics/$providerSlug/$diagnosticSlug/series"
135145
params={{ providerSlug, diagnosticSlug }}
146+
disabled={!data.has_series_values}
147+
data-disabled={!data.has_series_values ? "true" : undefined}
136148
>
137149
Series Values
138150
</Link>

frontend/src/routes/_app/executions.$groupId.tsx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import ExecutionDatasetTable from "@/components/execution/executionDatasetTable.
1414
import { ExecutionFilesContainer } from "@/components/execution/executionFiles";
1515
import { ExecutionLogContainer } from "@/components/execution/executionLogs";
1616
import { Values } from "@/components/execution/values";
17-
import type { MetricValueCollection } from "@/components/execution/values/types";
17+
import {
18+
isScalarValue,
19+
isSeriesValue,
20+
type MetricValueCollection,
21+
} from "@/components/execution/values/types";
1822
import { Badge } from "@/components/ui/badge";
1923
import {
2024
Card,
@@ -62,6 +66,10 @@ const ExecutionInfo = () => {
6266
}),
6367
);
6468

69+
const values = metricValues?.data as MetricValueCollection | undefined;
70+
const hasScalar = values?.data.filter(isScalarValue)?.length ?? false;
71+
const hasSeries = values?.data.filter(isSeriesValue)?.length ?? false;
72+
6573
return (
6674
<>
6775
{/*<PageHeader*/}
@@ -167,8 +175,24 @@ const ExecutionInfo = () => {
167175
<TabsTrigger value="datasets">Datasets</TabsTrigger>
168176
<TabsTrigger value="executions">Executions</TabsTrigger>
169177
<TabsTrigger value="files">Files</TabsTrigger>
170-
<TabsTrigger value="scalar-values">Scalar Values</TabsTrigger>
171-
<TabsTrigger value="series-values">Series Values</TabsTrigger>
178+
<TabsTrigger
179+
value="scalar-values"
180+
disabled={metricValues.isLoading || !hasScalar}
181+
data-disabled={
182+
metricValues.isLoading || !hasScalar ? "true" : undefined
183+
}
184+
>
185+
Scalar Values
186+
</TabsTrigger>
187+
<TabsTrigger
188+
value="series-values"
189+
disabled={metricValues.isLoading || !hasSeries}
190+
data-disabled={
191+
metricValues.isLoading || !hasSeries ? "true" : undefined
192+
}
193+
>
194+
Series Values
195+
</TabsTrigger>
172196
<TabsTrigger value="logs">Logs</TabsTrigger>
173197
</TabsList>
174198

0 commit comments

Comments
 (0)