import { useEffect, useState } from 'react' import { useCliAuthStore } from '../../stores/cliAuthStore' export function OpenRouterLoginPanel() { const { openRouterApiKey, saveOpenRouterApiKey, isLoading } = useCliAuthStore() const [apiKey, setApiKey] = useState('') const [status, setStatus] = useState(null) useEffect(() => { if (openRouterApiKey) setApiKey(openRouterApiKey) }, [openRouterApiKey]) const handleSave = async () => { if (!apiKey.trim()) { setStatus('Please enter an API key'); return } setStatus(null) try { await saveOpenRouterApiKey(apiKey.trim()) setStatus('Saved!') } catch (err) { setStatus(err instanceof Error ? err.message : String(err)) } } const handleClear = async () => { await useCliAuthStore.getState().clearAuth() setApiKey('') setStatus('Cleared') } return (
Paste your OpenRouter key to use the Anthropic-compatible OpenRouter base URL at https://openrouter.ai/api.
setApiKey(e.target.value)} placeholder={openRouterApiKey ? '••••••••' : 'sk-or-...'} className="flex-1 rounded-md border border-[var(--color-border)] bg-[var(--color-surface)] px-3 py-2 text-sm text-[var(--color-text-primary)] placeholder-[var(--color-text-tertiary)] focus:border-[var(--color-brand)] focus:outline-none" /> {openRouterApiKey && ( )}
{status && (
{status}
)}
) }