import { HStack, Icon, VStack, Text, Divider, Spinner, AspectRatio, SkeletonText, } from "@chakra-ui/react"; import { RiDatabase2Line } from "react-icons/ri"; import { formatTimePast } from "~/utils/dayjs"; import Link from "next/link"; import { useRouter } from "next/router"; import { BsPlusSquare } from "react-icons/bs"; import { api } from "~/utils/api"; import { useHandledAsyncCallback } from "~/utils/hooks"; type DatasetData = { name: string; numEntries: number; id: string; createdAt: Date; updatedAt: Date; }; export const DatasetCard = ({ dataset }: { dataset: DatasetData }) => { return ( {dataset.name} Created {formatTimePast(dataset.createdAt)} Updated {formatTimePast(dataset.updatedAt)} ); }; const CountLabel = ({ label, count }: { label: string; count: number }) => { return ( {label} {count} ); }; export const NewDatasetCard = () => { const router = useRouter(); const createMutation = api.datasets.create.useMutation(); const [createDataset, isLoading] = useHandledAsyncCallback(async () => { const newDataset = await createMutation.mutateAsync({ label: "New Dataset" }); await router.push({ pathname: "/data/[id]", query: { id: newDataset.id } }); }, [createMutation, router]); return ( New Dataset ); }; export const DatasetCardSkeleton = () => ( );