Skip to content

Commit 7ecc08b

Browse files
committed
workflow pattern
1 parent 116501f commit 7ecc08b

File tree

2 files changed

+50
-36
lines changed

2 files changed

+50
-36
lines changed

ai-sdk-workflow-patterns/app/layout.tsx

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ const geistMono = Geist_Mono({
1414
});
1515

1616
export const metadata: Metadata = {
17-
title: 'Create Next App',
18-
description: 'Generated by create next app',
17+
title: 'AI SDK Workflow Patterns',
18+
description:
19+
'Minimal black-and-white UI to explore common AI workflow patterns built with the Workflow DevKit and Vercel AI SDK.',
1920
};
2021

2122
export default function RootLayout({
@@ -25,12 +26,8 @@ export default function RootLayout({
2526
}>) {
2627
return (
2728
<html lang="en">
28-
<body
29-
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
30-
>
31-
<ThemeProvider attribute="class" forcedTheme="dark">
32-
{children}
33-
</ThemeProvider>
29+
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>
30+
<ThemeProvider attribute="class">{children}</ThemeProvider>
3431
</body>
3532
</html>
3633
);

ai-sdk-workflow-patterns/app/page.tsx

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -55,35 +55,52 @@ export default function Home() {
5555
};
5656

5757
return (
58-
<div className="flex flex-col items-center justify-center h-screen">
59-
<h1 className="text-3xl tracking-tight font-semibold max-w-sm text-center">
60-
Workflow Patterns in AI SDK using Workflow DevKit
61-
</h1>
62-
<div className="mt-6 w-[225px]">
63-
<Select
64-
defaultValue={PATTERNS[0].value}
65-
onValueChange={setPattern}
66-
value={pattern}
67-
>
68-
<SelectTrigger className="!w-full">
69-
<SelectValue placeholder="Select a pattern" />
70-
</SelectTrigger>
71-
<SelectContent>
72-
<SelectGroup>
73-
<SelectLabel>Patterns</SelectLabel>
74-
{PATTERNS.map((pattern) => (
75-
<SelectItem key={pattern.name} value={pattern.value}>
76-
{pattern.name}
77-
</SelectItem>
78-
))}
79-
</SelectGroup>
80-
</SelectContent>
81-
</Select>
82-
<Button className="mt-2 w-full" onClick={onSubmit}>
83-
Run Workflow
84-
</Button>
58+
<div className="min-h-dvh flex items-center justify-center px-6">
59+
<div className="w-full max-w-xl text-center">
60+
<h1 className="text-5xl md:text-6xl font-medium tracking-tight leading-tight text-balance">
61+
Workflow Patterns
62+
</h1>
63+
<p className="mt-2 text-xs text-muted-foreground">
64+
AI SDK + Workflow DevKit
65+
</p>
66+
67+
<div className="mt-10 mx-auto w-full max-w-md">
68+
<div className="flex items-center gap-3">
69+
<Select
70+
defaultValue={PATTERNS[0].value}
71+
onValueChange={setPattern}
72+
value={pattern}
73+
>
74+
<SelectTrigger className="h-11 w-full rounded-full bg-secondary text-secondary-foreground px-5">
75+
<SelectValue placeholder="Select a pattern" />
76+
</SelectTrigger>
77+
<SelectContent>
78+
<SelectGroup>
79+
{PATTERNS.map((pattern) => (
80+
<SelectItem key={pattern.name} value={pattern.value}>
81+
{pattern.name}
82+
</SelectItem>
83+
))}
84+
</SelectGroup>
85+
</SelectContent>
86+
</Select>
87+
<Button
88+
variant="secondary"
89+
size="sm"
90+
className="rounded-full px-4 shadow-none"
91+
onClick={onSubmit}
92+
>
93+
Run
94+
</Button>
95+
</div>
96+
</div>
97+
98+
{success && (
99+
<p className="mt-3 text-xs text-muted-foreground" aria-live="polite">
100+
Workflow triggered — check server logs.
101+
</p>
102+
)}
85103
</div>
86-
{success && <p className="mt-2">Workflow triggered, check server logs</p>}
87104
</div>
88105
);
89106
}

0 commit comments

Comments
 (0)