import { useState } from "react"; import { Link, useNavigate, useParams } from "@tanstack/react-router"; import { motion, type Variants } from "framer-motion"; import { MessageSquare, ChevronRight, Clock, CircleDot, ArrowLeft } from "lucide-react"; import { useSessions } from "@/api/queries"; import { PageLoader } from "@/components/shared/LoadingSpinner"; import { ErrorAlert } from "@/components/shared/ErrorAlert"; import { Pagination } from "@/components/shared/Pagination"; import { EmptyState } from "@/components/shared/EmptyState"; import type { components } from "@/api/schema.d.ts"; type Session = components["schemas"]["Session"]; const container: Variants = { hidden: { opacity: 0 }, show: { opacity: 1, transition: { staggerChildren: 0.05 } }, }; const item: Variants = { hidden: { opacity: 0, y: 10 }, show: { opacity: 1, y: 0, transition: { type: "spring", stiffness: 280, damping: 24 } }, }; export function SessionList() { const { workspaceId } = useParams({ strict: false }) as { workspaceId: string }; const [page, setPage] = useState(1); const navigate = useNavigate(); const { data, isLoading, error } = useSessions(workspaceId, page); const sessions: Session[] = (data as { items?: Session[] } | undefined)?.items ?? []; const totalPages = (data as { pages?: number } | undefined)?.pages ?? 1; const total = (data as { total?: number } | undefined)?.total ?? 0; return (
{workspaceId}
{new Date(session.created_at).toLocaleString()}