Centralize rights management
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -21,54 +21,39 @@ import {
|
||||
} from "@fluentui/react-icons";
|
||||
import { filesize } from "filesize";
|
||||
import React from "react";
|
||||
import { Rights } from "../api/ServerApi";
|
||||
import { VMApi, VMInfo, VMState } from "../api/VMApi";
|
||||
import { useConfirm } from "../hooks/providers/ConfirmDialogProvider";
|
||||
import { useToast } from "../hooks/providers/ToastProvider";
|
||||
import { AsyncWidget } from "./AsyncWidget";
|
||||
import { SectionContainer } from "./SectionContainer";
|
||||
import { VMLiveScreenshot } from "./VMLiveScreenshot";
|
||||
import { SectionContainer } from "./SectionContainer";
|
||||
|
||||
const useStyles = makeStyles({
|
||||
body1Stronger: typographyStyles.body1Stronger,
|
||||
caption1: typographyStyles.caption1,
|
||||
});
|
||||
|
||||
export function VirtualMachinesWidget(): React.ReactElement {
|
||||
const [list, setList] = React.useState<VMInfo[] | undefined>();
|
||||
const load = async () => {
|
||||
setList(await VMApi.GetList());
|
||||
};
|
||||
|
||||
export function VirtualMachinesWidget(p: {
|
||||
rights: Rights;
|
||||
}): React.ReactElement {
|
||||
return (
|
||||
<SectionContainer>
|
||||
<AsyncWidget
|
||||
loadKey={1}
|
||||
load={load}
|
||||
loadingMessage="Loading the list virtual machines..."
|
||||
errMsg="Failed to load the list of virtual machines!"
|
||||
build={() => <VirtualMachinesWidgetInner list={list!} />}
|
||||
/>
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "row",
|
||||
flexWrap: "wrap",
|
||||
justifyContent: "center",
|
||||
}}
|
||||
>
|
||||
{p.rights.vms.map((v, n) => (
|
||||
<VMWidget key={n} vm={v} />
|
||||
))}
|
||||
</div>
|
||||
</SectionContainer>
|
||||
);
|
||||
}
|
||||
|
||||
function VirtualMachinesWidgetInner(p: { list: VMInfo[] }): React.ReactElement {
|
||||
return (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
flexDirection: "row",
|
||||
flexWrap: "wrap",
|
||||
justifyContent: "center",
|
||||
}}
|
||||
>
|
||||
{p.list.map((v, n) => (
|
||||
<VMWidget key={n} vm={v} />
|
||||
))}{" "}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function VMWidget(p: { vm: VMInfo }): React.ReactElement {
|
||||
const toast = useToast();
|
||||
|
||||
|
Reference in New Issue
Block a user