'use client' import { ArrowUpRight, Sparkles } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' import { useAgentSheet } from './AgentSheetProvider' import AgentAvatar from './AgentAvatar' import { useCompanyOptional, useCapability } from '@/contexts/CompanyContext' import { CAPABILITY } from '@/lib/entitlements/keys' import { createClient } from '@/lib/supabase/client' // Tiny client component for /chat empty state. Reads the agent identity from // the provider so it can show the user's chosen avatar + name above the // "starta en konversation" CTA. // // The three suggestion chips below the headline give users a one-click way // in. They navigate to /chat/new?intent=…&prompt=… which mounts AgentChat // inline and swaps to /chat/[id] once the conversation is created — so the // flow stays full-screen instead of opening a slide-in sheet. const SUGGESTIONS: { label: string; prompt: string }[] = [ { label: 'Vad är min största utgiftspost den här månaden?', prompt: 'Vad är min största utgiftspost den här månaden? Visa de fem största kategorierna.', }, { label: 'Hur ser min momsrapport ut för senaste perioden?', prompt: 'Hur ser min momsrapport ut för den senaste perioden? Vad blir moms att betala eller få tillbaka, och ser något ovanligt ut?', }, { label: 'När är min nästa skatte- eller momsdeadline?', prompt: 'När är min nästa skatte- eller momsdeadline, och vad behöver jag göra inför den?', }, ] export default function ChatEmptyState() { const { identity } = useAgentSheet() const companyCtx = useCompanyOptional() const router = useRouter() const isSandbox = companyCtx?.isSandbox ?? false const hasAi = useCapability(CAPABILITY.ai) const name = identity.displayName?.trim() || 'din assistent' if (isSandbox) { const handleCreateAccount = async () => { const supabase = createClient() // Sign-out is best-effort — navigate even if Supabase is unreachable // so the button never looks dead. try { await supabase.auth.signOut() } catch { // Intentionally swallowed. } router.push('/register') } return (

Fråga {name}

Avstängd i sandlådan

AI-assistenten använder en betald molntjänst och är därför inaktiverad här. I den fullständiga produkten kan {name} kategorisera transaktioner, granska leverantörsfakturor och svara på frågor om din bokföring.

) } if (!hasAi) { return (

Fråga {name}

Ingår i abonnemanget

AI-assistenten använder en betald molntjänst. Uppgradera för att låta {' '}{name} kategorisera transaktioner, granska leverantörsfakturor och svara på frågor om din bokföring.

) } // Hidden on mobile — the sidebar IS the page when no conversation is open. // On desktop, fills the right pane with a centered prompt. return (

Fråga {name}

Välj en konversation till vänster, eller starta en ny om något har dykt upp.

{SUGGESTIONS.map((s) => ( {s.label} ))}
) }