import { useMemo, useState } from 'react' import useAppStore from '../store/appStore' import { useSession } from '../hooks/useSession' function bucketFor(updatedAt) { const now = new Date() const t = new Date(updatedAt) const startOfToday = new Date(now.getFullYear(), now.getMonth(), now.getDate()) const startOfYesterday = new Date(startOfToday) startOfYesterday.setDate(startOfYesterday.getDate() - 1) const sevenDaysAgo = new Date(startOfToday) sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7) if (t >= startOfToday) return 'Today' if (t >= startOfYesterday) return 'Yesterday' if (t >= sevenDaysAgo) return 'Last 7 days' return 'Older' } const BUCKET_ORDER = ['Today', 'Yesterday', 'Last 7 days', 'Older'] export default function SessionSidebar() { const { sessions, activeSessionId, sidebarOpen } = useAppStore() const { createSession, openSession, deleteSession, renameSession } = useSession() const [renamingId, setRenamingId] = useState(null) const [renameValue, setRenameValue] = useState('') const [query, setQuery] = useState('') const grouped = useMemo(() => { const filtered = query.trim() ? sessions.filter((s) => s.name.toLowerCase().includes(query.trim().toLowerCase())) : sessions const buckets = { Today: [], Yesterday: [], 'Last 7 days': [], Older: [] } for (const s of filtered) buckets[bucketFor(s.updated_at)].push(s) return buckets }, [sessions, query]) if (!sidebarOpen) return null async function handleNew() { const session = await createSession('New Session') if (session) await openSession(session.id) } function startRename(s) { setRenamingId(s.id) setRenameValue(s.name) } async function submitRename(id) { if (renameValue.trim()) await renameSession(id, renameValue.trim()) setRenamingId(null) } return (