diff --git a/app/nodes/[node]/qemu/[vmid]/index.tsx b/app/nodes/[node]/qemu/[vmid]/index.tsx new file mode 100644 index 0000000..2c5a4ff --- /dev/null +++ b/app/nodes/[node]/qemu/[vmid]/index.tsx @@ -0,0 +1,121 @@ +import { useSearchParams } from "expo-router"; +import { useMemo } from "react"; +import { View, Text, ScrollView } from "react-native"; +import Icon from "@expo/vector-icons/Feather"; +import tw from "twrnc"; +import Card from "../../../../../components/shared/card"; +import { Gauge } from "../../../../../components/shared/gauge"; +import ProgressBar from "../../../../../components/shared/progress-bar"; +import { useNode } from "../../../../../hooks/useNode"; +import { useResource } from "../../../../../hooks/useResource"; +import { formatBytes } from "../../../../../lib/helper/format"; + +export default function QemuResourcePage() { + const { node, vmid } = useSearchParams<{ node: string; vmid: string }>(); + const { rddData, config } = useResource(node, "qemu", vmid); + const { qemu } = useNode(node); + + const status = useMemo(() => { + if (qemu.isSuccess) { + return qemu.data.find((lxc) => lxc.vmid.toString() === vmid); + } + }, [qemu]); + + console.log({ rddData }); + + return ( + + + + + + + + + + + {vmid}: {status.name} + + Node: {node} + + + + + + + {rddData.isSuccess && ( + + + + + + + + + + + + + + + + + + + + + + + )} + + + + + {config.isSuccess && + Object.entries(config.data).map(([key, val]) => { + return ( + + {key}: + {val} + + ); + })} + + + + ); +}