import { observer } from "mobx-react"; import { DoneIcon, WarningIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { useTheme } from "styled-components"; import FileOperation from "~/models/FileOperation"; import { Action } from "~/components/Actions"; import ListItem from "~/components/List/Item"; import Spinner from "~/components/Spinner"; import Time from "~/components/Time"; import useCurrentUser from "~/hooks/useCurrentUser"; import FileOperationMenu from "~/menus/FileOperationMenu"; type Props = { fileOperation: FileOperation; handleDelete?: (arg0: FileOperation) => Promise; }; const FileOperationListItem = ({ fileOperation, handleDelete }: Props) => { const { t } = useTranslation(); const user = useCurrentUser(); const theme = useTheme(); const stateMapping = { creating: t("Processing"), expired: t("Expired"), uploading: t("Processing"), error: t("Failed"), }; const iconMapping = { creating: , uploading: , complete: , error: , }; const title = fileOperation.type === "import" || fileOperation.collectionId ? fileOperation.name : t("All collections"); return ( {fileOperation.state !== "complete" && ( <>{stateMapping[fileOperation.state]} •  )} {fileOperation.error && <>{fileOperation.error} • } {t(`{{userName}} requested`, { userName: user.id === fileOperation.user.id ? t("You") : fileOperation.user.name, })}