import Loading from "@moduletrace/twui/elements/Loading"; import Select from "@moduletrace/twui/form/Select"; import { useAdminCrudGet } from "@/src/hooks/use-admin-crud-get"; import type { TableType } from "@/src/types"; import Modal from "@moduletrace/twui/elements/Modal"; import Button from "@moduletrace/twui/layout/Button"; import Card from "@moduletrace/twui/elements/Card"; import H3 from "@moduletrace/twui/layout/H3"; import type { BUN_SQLITE_BSQLITE_ALL_TYPEDEFS } from "@/db/types/db"; import useStatus from "@moduletrace/twui/hooks/useStatus"; import H4 from "@moduletrace/twui/layout/H4"; import Stack from "@moduletrace/twui/layout/Stack"; import Span from "@moduletrace/twui/layout/Span"; import Row from "@moduletrace/twui/layout/Row"; import dayjs from "dayjs"; import twuiNumberfy from "@moduletrace/twui/utils/numberfy"; import LucideIcon from "@moduletrace/twui/elements/lucide-icon"; import EmptyContent from "@moduletrace/twui/elements/EmptyContent"; export type CopyableRecord = { id?: number | ""; title?: string; subject?: string; }; type Props = { table: TableType; title: string; onSelect?: (record: T) => void; onClear?: () => void; }; export default function CopyFromExistingSelect< T extends BUN_SQLITE_BSQLITE_ALL_TYPEDEFS = BUN_SQLITE_BSQLITE_ALL_TYPEDEFS, >({ table, title, onSelect, onClear }: Props) { const { res: records, ready } = useAdminCrudGet({ table, }); const { open, setOpen } = useStatus(); return ( { e.preventDefault(); }} variant="outlined" > Create from an Existing Record } className="xl:p-6" >

{title || "Select Record"}

Select a record to duplicate
{records?.[0] ? ( records?.map((rec, index) => { const date = dayjs( twuiNumberfy(rec.created_at), ); return ( { onSelect?.(rec); setOpen(false); }} className="w-full cursor-pointer" >

{rec.title}

{date .toString() .substring(0, 16)}
); }) ) : ( )}
); }