import React from "react"; import { Card, Stack, Text, Group, Badge, Button, Box, Image, ThemeIcon } from "@mantine/core"; import { useTranslation } from "react-i18next"; import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf"; import StorageIcon from "@mui/icons-material/Storage"; import { FileWithUrl } from "../types/file"; import { getFileSize, getFileDate } from "../utils/fileUtils"; import { useIndexedDBThumbnail } from "../hooks/useIndexedDBThumbnail"; interface FileCardProps { file: FileWithUrl; onRemove: () => void; onDoubleClick?: () => void; } const FileCard: React.FC = ({ file, onRemove, onDoubleClick }) => { const { t } = useTranslation(); const { thumbnail: thumb, isGenerating } = useIndexedDBThumbnail(file); return ( {thumb ? ( PDF thumbnail ) : isGenerating ? (
Generating...
) : (
100 * 1024 * 1024 ? "orange" : "red"} size={60} radius="sm" style={{ display: "flex", alignItems: "center", justifyContent: "center" }} > {file.size > 100 * 1024 * 1024 && ( Large File )}
)} {file.name} {getFileSize(file)} {getFileDate(file)} {file.storedInIndexedDB && ( } > DB )} ); }; export default FileCard;