diff --git a/apps/desktop/src/components/desktop-onboarding-overlay.tsx b/apps/desktop/src/components/desktop-onboarding-overlay.tsx index 90fd653f1e..992756f498 100644 --- a/apps/desktop/src/components/desktop-onboarding-overlay.tsx +++ b/apps/desktop/src/components/desktop-onboarding-overlay.tsx @@ -3,7 +3,7 @@ import { useEffect, useMemo, useRef, useState } from 'react' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' -import { Check, ChevronRight, ExternalLink, KeyRound, Loader2, Sparkles } from '@/lib/icons' +import { Check, ChevronLeft, ChevronRight, ExternalLink, KeyRound, Loader2, Sparkles } from '@/lib/icons' import { cn } from '@/lib/utils' import { $desktopOnboarding, @@ -174,78 +174,34 @@ function Picker({ ctx }: { ctx: OnboardingContext }) { const ordered = useMemo(() => (providers ? sortProviders(providers) : []), [providers]) const hasOauth = ordered.length > 0 - return ( - <> - {hasOauth && ( - - )} + if (mode === 'apikey' || !hasOauth) { + return + } - {mode === 'oauth' && hasOauth ? ( -
- {providers === null ? ( - }>Looking up providers... - ) : ( - ordered.map(provider => ( - void startProviderOAuth(p, ctx)} provider={provider} /> - )) - )} -
+ return ( +
+ {providers === null ? ( + }>Looking up providers... ) : ( - + ordered.map(provider => ( + void startProviderOAuth(p, ctx)} provider={provider} /> + )) )} - + setOnboardingMode('apikey')}>I have an API key +
) } -interface ModeTab { - id: T - label: string -} - -interface ModeTabsProps { - mode: T - onChange: (mode: T) => void - tabs: ModeTab[] -} - -const TAB_COLS: Record = { - 2: 'grid-cols-2', - 3: 'grid-cols-3', - 4: 'grid-cols-4' -} - -function ModeTabs({ mode, onChange, tabs }: ModeTabsProps) { +function ModeSwitchLink({ children, onClick }: { children: React.ReactNode; onClick: () => void }) { return ( -
- {tabs.map(tab => ( - - ))} +
+
) } @@ -287,7 +243,7 @@ function ProviderRow({ ) } -function ApiKeyForm({ ctx }: { ctx: OnboardingContext }) { +function ApiKeyForm({ canGoBack, ctx }: { canGoBack: boolean; ctx: OnboardingContext }) { const [option, setOption] = useState(API_KEY_OPTIONS[0]) const [value, setValue] = useState('') const [saving, setSaving] = useState(false) @@ -316,6 +272,16 @@ function ApiKeyForm({ ctx }: { ctx: OnboardingContext }) { return (
+ {canGoBack ? ( + + ) : null}
{API_KEY_OPTIONS.map(o => ( -
- - Waiting for you to authorize... +
+
+ + Waiting for you to authorize... +
+
-
)