'use client' import { useState } from 'react' import { motion, AnimatePresence } from 'motion/react' import { Search, Bot, ChevronLeft, ChevronRight, Loader2 } from 'lucide-react' import { useLanguage } from '@/lib/i18n' import { DashboardWidgetTitleRow } from '@/components/dashboard-widget-title-row' export interface AgentSuggestion { id: string topic: string reason: string relatedNoteCount: number suggestedFrequency: string } export interface DashboardAgentCarouselProps { suggestions: AgentSuggestion[] loading?: boolean actingId: string | null formatFrequency: (f: string) => string onAccept: (id: string) => void onDismiss: (id: string) => void prefersReducedMotion?: boolean } export function DashboardAgentCarousel({ suggestions, loading, actingId, formatFrequency, onAccept, onDismiss, prefersReducedMotion, }: DashboardAgentCarouselProps) { const { t } = useLanguage() const [idx, setIdx] = useState(0) const navActions = suggestions.length > 1 ? (
{idx + 1}/{suggestions.length}
) : null if (loading) { return
} return (
} title={t('homeDashboard.suggestedResearch')} actions={navActions} /> {suggestions.length === 0 ? (

{t('homeDashboard.agentsEmpty')}

) : ( )}
) } function AgentSlide({ current, actingId, formatFrequency, onAccept, onDismiss, prefersReducedMotion, t, }: { current: AgentSuggestion actingId: string | null formatFrequency: (f: string) => string onAccept: (id: string) => void onDismiss: (id: string) => void prefersReducedMotion?: boolean t: (key: string) => string }) { const slide = prefersReducedMotion ? { initial: {}, animate: {}, exit: {} } : { initial: { opacity: 0, y: 8 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -8 } } return (

{current.topic}

{current.reason}

{current.relatedNoteCount} {t('homeDashboard.notes')} ยท {formatFrequency(current.suggestedFrequency)}

) }