Ready to implement file dialog
This commit is contained in:
parent
c6851bb50d
commit
b30854feea
21
moneymgr_web/src/dialogs/FileViewerDialog.tsx
Normal file
21
moneymgr_web/src/dialogs/FileViewerDialog.tsx
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { Button, Dialog, DialogActions, DialogTitle } from "@mui/material";
|
||||||
|
import { UploadedFile } from "../api/FileApi";
|
||||||
|
import { filesize } from "filesize";
|
||||||
|
|
||||||
|
export function FileViewerDialog(p: {
|
||||||
|
open: boolean;
|
||||||
|
onClose: () => void;
|
||||||
|
file: UploadedFile;
|
||||||
|
}): React.ReactElement {
|
||||||
|
return (
|
||||||
|
<Dialog open={p.open} onClose={p.onClose}>
|
||||||
|
<DialogTitle>
|
||||||
|
{p.file.file_name} ({filesize(p.file.file_size)})
|
||||||
|
</DialogTitle>
|
||||||
|
TODO
|
||||||
|
<DialogActions>
|
||||||
|
<Button onClick={p.onClose}>Close</Button>
|
||||||
|
</DialogActions>
|
||||||
|
</Dialog>
|
||||||
|
);
|
||||||
|
}
|
@ -5,6 +5,7 @@ import { filesize } from "filesize";
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { FileApi, UploadedFile } from "../api/FileApi";
|
import { FileApi, UploadedFile } from "../api/FileApi";
|
||||||
import { AsyncWidget } from "./AsyncWidget";
|
import { AsyncWidget } from "./AsyncWidget";
|
||||||
|
import { FileViewerDialog } from "../dialogs/FileViewerDialog";
|
||||||
|
|
||||||
export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
|
export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
|
||||||
const [file, setFile] = React.useState<UploadedFile | null>(null);
|
const [file, setFile] = React.useState<UploadedFile | null>(null);
|
||||||
@ -26,7 +27,14 @@ export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
|
|||||||
function UploadedFileWidgetInner(p: {
|
function UploadedFileWidgetInner(p: {
|
||||||
file: UploadedFile;
|
file: UploadedFile;
|
||||||
}): React.ReactElement {
|
}): React.ReactElement {
|
||||||
|
const [open, setOpen] = React.useState(false);
|
||||||
return (
|
return (
|
||||||
|
<>
|
||||||
|
<FileViewerDialog
|
||||||
|
open={open}
|
||||||
|
file={p.file}
|
||||||
|
onClose={() => setOpen(false)}
|
||||||
|
/>
|
||||||
<Button
|
<Button
|
||||||
startIcon={
|
startIcon={
|
||||||
p.file.mime_type === "application/pdf" ? (
|
p.file.mime_type === "application/pdf" ? (
|
||||||
@ -35,8 +43,10 @@ function UploadedFileWidgetInner(p: {
|
|||||||
<ImageIcon />
|
<ImageIcon />
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
onClick={() => setOpen(true)}
|
||||||
>
|
>
|
||||||
{p.file.file_name} ({filesize(p.file.file_size)})
|
{p.file.file_name} ({filesize(p.file.file_size)})
|
||||||
</Button>
|
</Button>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user