import { CircleAlertIcon, DownloadIcon, EllipsisVerticalIcon, SendIcon, } from "lucide-solid"; import { Stack } from "styled-system/jsx"; import { IconButton } from "~/components/ui/icon-button"; import { Spinner } from "~/components/ui/spinner"; import { Popover } from "~/components/ui/popover"; import { css } from "styled-system/css"; import { Account } from "~/lib/accounts"; import { TaskState } from "~/lib/task"; import PostDialog from "./PostDialog"; import { Button } from "./ui/button"; import { Menu } from "./ui/menu"; import { createSignal } from "solid-js"; const downloadFile = (blob: Blob, fileName: string) => { const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; // handle file names with periods in them a.download = fileName; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); }; const Task = (process: TaskState, selectedAccount: Account | undefined) => { const [dialogOpen, setDialogOpen] = createSignal(false); const statusError = (error: string) => ( ( )} /> error processing file: {error} ); const statusSuccess = (result: Blob) => { return ( <> ( )} /> ); }; const statusProcessing = () => ( ); const status = () => { switch (process.status) { case "success": return statusSuccess(process.result); case "processing": return statusProcessing(); default: return statusError(process.error); } }; return ( {process.file.name}
{status()}
); }; export default Task;