import type React from "react"; import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Grid, Typography, Box } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import { skipToken, useQuery } from "@tanstack/react-query"; import StatusPieChart from "components/charts/StatusPieChart"; import PackageCountBarChart from "components/charts/PackageCountBarChart"; import { Client } from "api/client/AhrimanClient"; import { QueryKeys } from "api/QueryKeys"; import { useRepository } from "hooks/useRepository"; import { StatusHeaderStyles } from "theme/status/StatusColors"; import { formatTimestamp } from "components/common/formatTimestamp"; import type { InternalStatus } from "api/types/InternalStatus"; interface DashboardDialogProps { open: boolean; onClose: () => void; } export default function DashboardDialog({ open, onClose }: DashboardDialogProps): React.JSX.Element { const { current } = useRepository(); const { data: status } = useQuery({ queryKey: current ? QueryKeys.status(current) : ["status"], queryFn: current ? () => Client.fetchStatus(current) : skipToken, enabled: !!current && open, }); const headerStyle = status ? StatusHeaderStyles[status.status.status] : {}; return ( System health {status && ( <> Repository name {status.repository} Repository architecture {status.architecture} Current status {status.status.status} Updated at {formatTimestamp(status.status.timestamp)} {status.packages.total > 0 && ( )} )} ); }