import React from "react"; import { useAtom, useSetAtom } from "jotai"; import { userAtom, createCanvasDialogAtom, renameCanvasDialogAtom, } from "../app-jotai"; import { CanvasMetadata } from "../data/storage"; import { FilledButton } from "../../packages/excalidraw/components/FilledButton"; import { FreedrawIcon, LoadIcon, TrashIcon, } from "../../packages/excalidraw/components/icons"; import "./MyCreationsTab.scss"; import clsx from "clsx"; import { timeAgo } from "../utils/time"; interface MyCreationsTabProps { canvases: readonly CanvasMetadata[]; onCanvasSelect: (id: string) => void; onCanvasDelete: (id: string) => void; currentCanvasId: string | null; } export const MyCreationsTab: React.FC = ({ canvases, onCanvasSelect, onCanvasDelete, currentCanvasId, }) => { const [user] = useAtom(userAtom); const setCreateCanvasDialog = useSetAtom(createCanvasDialogAtom); const setRenameCanvasDialog = useSetAtom(renameCanvasDialogAtom); const sortedCanvases = [...canvases].sort( (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(), ); return (
setCreateCanvasDialog({ isOpen: true })} fullWidth > Create New Canvas
{canvases.length === 0 ? (
{LoadIcon}

You have no saved canvases yet.

Create a new canvas to get started. It will be saved{" "} {user ? "to your account" : "in your browser"}.

) : ( sortedCanvases.map((canvas) => (
onCanvasSelect(canvas.id)} > {canvas.thumbnail ? ( {canvas.name} ) : (
空空如也
)}
{canvas.name} {timeAgo(canvas.updatedAt)}
)) )}
); };