"use client" import { useMemo } from "react" import { useQueryClient } from "@tanstack/react-query" import { useTimeline, useDateSummary } from "@/hooks/use-timeline" import { groupByDate } from "@/lib/timeline" import { PhotoGrid } from "@/components/photo-grid" import { DateScrubber } from "@/components/date-scrubber" import api from "@/lib/api" import { toast } from "sonner" export default function TimelinePage() { const qc = useQueryClient() const { assets, isLoading, hasMore, loadMore, total } = useTimeline() const { data: dateSummary } = useDateSummary() const groups = useMemo(() => groupByDate(assets), [assets]) const handleDeleteAssets = async (ids: string[]) => { let deleted = 0 for (const id of ids) { try { await api.delete(`/assets/${id}`) deleted++ } catch { /* skip */ } } if (deleted > 0) { toast.success(`Deleted ${deleted} photo(s)`) qc.invalidateQueries({ queryKey: ["timeline"] }) qc.invalidateQueries({ queryKey: ["date-summary"] }) } } return (

Timeline

{total > 0 && ( {total} photos )}
loadMore()} onDeleteAssets={handleDeleteAssets} />
) }