Add ISO catalog

This commit is contained in:
2025-05-21 20:28:46 +02:00
parent 35e7f4b59c
commit 8c27010396
12 changed files with 308 additions and 19 deletions

View File

@ -24,9 +24,12 @@ import { AsyncWidget } from "../widgets/AsyncWidget";
import { FileInput } from "../widgets/forms/FileInput";
import { VirtWebPaper } from "../widgets/VirtWebPaper";
import { VirtWebRouteContainer } from "../widgets/VirtWebRouteContainer";
import MenuBookIcon from "@mui/icons-material/MenuBook";
import { IsoCatalogDialog } from "../dialogs/IsoCatalogDialog";
export function IsoFilesRoute(): React.ReactElement {
const [list, setList] = React.useState<IsoFile[] | undefined>();
const [isoCatalog, setIsoCatalog] = React.useState(false);
const loadKey = React.useRef(1);
@ -40,19 +43,34 @@ export function IsoFilesRoute(): React.ReactElement {
};
return (
<AsyncWidget
loadKey={loadKey.current}
errMsg="Failed to load ISO files list!"
load={load}
ready={list !== undefined}
build={() => (
<VirtWebRouteContainer label="ISO files management">
<UploadIsoFileCard onFileUploaded={reload} />
<UploadIsoFileFromUrlCard onFileUploaded={reload} />
<IsoFilesList list={list!} onReload={reload} />
</VirtWebRouteContainer>
)}
/>
<>
<AsyncWidget
loadKey={loadKey.current}
errMsg="Failed to load ISO files list!"
load={load}
ready={list !== undefined}
build={() => (
<VirtWebRouteContainer
label="ISO files management"
actions={
<Tooltip title="Open the ISO catalog">
<IconButton onClick={() => setIsoCatalog(true)}>
<MenuBookIcon />
</IconButton>
</Tooltip>
}
>
<UploadIsoFileCard onFileUploaded={reload} />
<UploadIsoFileFromUrlCard onFileUploaded={reload} />
<IsoFilesList list={list!} onReload={reload} />
</VirtWebRouteContainer>
)}
/>
<IsoCatalogDialog
open={isoCatalog}
onClose={() => setIsoCatalog(false)}
/>
</>
);
}