Display info of uploaded files

This commit is contained in:
2025-04-28 21:38:27 +02:00
parent 3ae229a275
commit c6851bb50d
7 changed files with 78 additions and 3 deletions

View File

@ -0,0 +1,42 @@
import ImageIcon from "@mui/icons-material/Image";
import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf";
import { Button } from "@mui/material";
import { filesize } from "filesize";
import React from "react";
import { FileApi, UploadedFile } from "../api/FileApi";
import { AsyncWidget } from "./AsyncWidget";
export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
const [file, setFile] = React.useState<UploadedFile | null>(null);
const load = async () => {
setFile(await FileApi.GetFile(p.file_id));
};
return (
<AsyncWidget
errMsg="Failed"
build={() => <UploadedFileWidgetInner file={file!} />}
loadKey={p.file_id}
load={load}
/>
);
}
function UploadedFileWidgetInner(p: {
file: UploadedFile;
}): React.ReactElement {
return (
<Button
startIcon={
p.file.mime_type === "application/pdf" ? (
<PictureAsPdfIcon />
) : (
<ImageIcon />
)
}
>
{p.file.file_name} ({filesize(p.file.file_size)})
</Button>
);
}