Skip to content

Commit 7df02b1

Browse files
committed
Adds runs and filters
1 parent b6838bc commit 7df02b1

3 files changed

Lines changed: 59 additions & 39 deletions

File tree

src/components/shared/PipelineRunFiltersBar/PipelineRunFiltersBar.tsx

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,8 @@ export function PipelineRunFiltersBar({
221221
/>
222222
</div>
223223

224-
{/* Annotation Filter - inline */}
225-
{!isAnnotationExpanded ? (
224+
{/* Annotation Filter button */}
225+
{!isAnnotationExpanded && (
226226
<Button
227227
variant="outline"
228228
size="sm"
@@ -232,45 +232,48 @@ export function PipelineRunFiltersBar({
232232
<Icon name="Plus" size="xs" className="mr-1" />
233233
Annotation
234234
</Button>
235-
) : (
236-
<InlineStack gap="1" align="center" className="shrink-0">
237-
<Input
238-
placeholder="Key"
239-
value={annotationKeyInput}
240-
onChange={(e) => setAnnotationKeyInput(e.target.value)}
241-
onEnter={handleAddAnnotation}
242-
onEscape={handleCancelAnnotation}
243-
className="w-28 h-8 text-sm"
244-
autoFocus
245-
/>
246-
<Input
247-
placeholder="Value (optional)"
248-
value={annotationValueInput}
249-
onChange={(e) => setAnnotationValueInput(e.target.value)}
250-
onEnter={handleAddAnnotation}
251-
onEscape={handleCancelAnnotation}
252-
className="w-36 h-8 text-sm"
253-
/>
254-
<Button
255-
variant="outline"
256-
size="sm"
257-
onClick={handleAddAnnotation}
258-
disabled={!annotationKeyInput.trim()}
259-
>
260-
Add
261-
</Button>
262-
<Button
263-
variant="ghost"
264-
size="sm"
265-
onClick={handleCancelAnnotation}
266-
aria-label="Cancel"
267-
>
268-
<Icon name="X" size="xs" />
269-
</Button>
270-
</InlineStack>
271235
)}
272236
</InlineStack>
273237

238+
{/* Annotation input row - rendered below to avoid overflow */}
239+
{isAnnotationExpanded && (
240+
<InlineStack gap="1" align="center">
241+
<Input
242+
placeholder="Key"
243+
value={annotationKeyInput}
244+
onChange={(e) => setAnnotationKeyInput(e.target.value)}
245+
onEnter={handleAddAnnotation}
246+
onEscape={handleCancelAnnotation}
247+
className="w-28 h-8 text-sm"
248+
autoFocus
249+
/>
250+
<Input
251+
placeholder="Value (optional)"
252+
value={annotationValueInput}
253+
onChange={(e) => setAnnotationValueInput(e.target.value)}
254+
onEnter={handleAddAnnotation}
255+
onEscape={handleCancelAnnotation}
256+
className="w-36 h-8 text-sm"
257+
/>
258+
<Button
259+
variant="outline"
260+
size="sm"
261+
onClick={handleAddAnnotation}
262+
disabled={!annotationKeyInput.trim()}
263+
>
264+
Add
265+
</Button>
266+
<Button
267+
variant="ghost"
268+
size="sm"
269+
onClick={handleCancelAnnotation}
270+
aria-label="Cancel"
271+
>
272+
<Icon name="X" size="xs" />
273+
</Button>
274+
</InlineStack>
275+
)}
276+
274277
{/* Row 2: Active Filters & Count */}
275278
{(hasActiveFilters || totalCount !== undefined) && (
276279
<InlineStack gap="2" align="center" blockAlign="center">
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { RunSection } from "@/components/Home/RunSection/RunSection";
2+
import { PipelineRunFiltersBar } from "@/components/shared/PipelineRunFiltersBar/PipelineRunFiltersBar";
3+
import { BlockStack } from "@/components/ui/layout";
4+
import { Text } from "@/components/ui/typography";
5+
6+
export function DashboardRunsView() {
7+
return (
8+
<BlockStack gap="4">
9+
<Text as="h2" size="lg" weight="semibold">
10+
Runs
11+
</Text>
12+
<PipelineRunFiltersBar />
13+
<RunSection hideFilters />
14+
</BlockStack>
15+
);
16+
}

src/routes/router.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import RootLayout from "../components/layout/RootLayout";
2020
import { DashboardFavoritesView } from "./Dashboard/DashboardFavoritesView";
2121
import { DashboardLayout } from "./Dashboard/DashboardLayout";
2222
import { DashboardRecentlyViewedView } from "./Dashboard/DashboardRecentlyViewedView";
23+
import { DashboardRunsView } from "./Dashboard/DashboardRunsView";
2324
import Editor from "./Editor";
2425
import Home from "./Home";
2526
import { ImportPage } from "./Import";
@@ -112,7 +113,7 @@ const ComingSoon = () => null;
112113
const dashboardRunsRoute = createRoute({
113114
getParentRoute: () => dashboardRoute,
114115
path: "/runs",
115-
component: ComingSoon,
116+
component: DashboardRunsView,
116117
});
117118

118119
const dashboardPipelinesRoute = createRoute({

0 commit comments

Comments
 (0)