diff --git a/moneymgr_web/src/dialogs/FileViewerDialog.tsx b/moneymgr_web/src/dialogs/FileViewerDialog.tsx
new file mode 100644
index 0000000..dc431e4
--- /dev/null
+++ b/moneymgr_web/src/dialogs/FileViewerDialog.tsx
@@ -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 (
+
+ );
+}
diff --git a/moneymgr_web/src/widgets/UploadedFileWidget.tsx b/moneymgr_web/src/widgets/UploadedFileWidget.tsx
index 555d918..e0d7b6a 100644
--- a/moneymgr_web/src/widgets/UploadedFileWidget.tsx
+++ b/moneymgr_web/src/widgets/UploadedFileWidget.tsx
@@ -5,6 +5,7 @@ import { filesize } from "filesize";
import React from "react";
import { FileApi, UploadedFile } from "../api/FileApi";
import { AsyncWidget } from "./AsyncWidget";
+import { FileViewerDialog } from "../dialogs/FileViewerDialog";
export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
const [file, setFile] = React.useState(null);
@@ -26,17 +27,26 @@ export function UploadedFileWidget(p: { file_id: number }): React.ReactElement {
function UploadedFileWidgetInner(p: {
file: UploadedFile;
}): React.ReactElement {
+ const [open, setOpen] = React.useState(false);
return (
-
- ) : (
-
- )
- }
- >
- {p.file.file_name} ({filesize(p.file.file_size)})
-
+ <>
+ setOpen(false)}
+ />
+
+ ) : (
+
+ )
+ }
+ onClick={() => setOpen(true)}
+ >
+ {p.file.file_name} ({filesize(p.file.file_size)})
+
+ >
);
}