import { useSystemHealth, useSystemStatus } from "@/apis/hooks"; import { QueryOverlay } from "@/components/async"; import { GithubRepoRoot } from "@/constants"; import { Environment, useInterval } from "@/utilities"; import { IconDefinition } from "@fortawesome/fontawesome-common-types"; import { faDiscord, faGithub, faWikipediaW, } from "@fortawesome/free-brands-svg-icons"; import { faCode, faPaperPlane } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Anchor, Container, Divider, Grid, Stack, Text } from "@mantine/core"; import { useDocumentTitle } from "@mantine/hooks"; import moment from "moment"; import { FunctionComponent, ReactNode, useCallback, useState } from "react"; import Table from "./table"; interface InfoProps { title: string; children: ReactNode; } function Row(props: InfoProps): JSX.Element { const { title, children } = props; return ( {title} {children} ); } interface IconProps { icon: IconDefinition; link: string; children: string; } function Label(props: IconProps): JSX.Element { const { icon, link, children } = props; return ( <> {children} ); } const InfoContainer: FunctionComponent<{ title: string }> = ({ title, children, }) => { return (

{title}

{children}
); }; const SystemStatusView: FunctionComponent = () => { const health = useSystemHealth(); const { data: status } = useSystemStatus(); const [uptime, setUptime] = useState(); const update = useCallback(() => { const startTime = status?.start_time; if (startTime) { const duration = moment.duration( moment().utc().unix() - startTime, "seconds" ), days = duration.days(), hours = duration.hours().toString().padStart(2, "0"), minutes = duration.minutes().toString().padStart(2, "0"), seconds = duration.seconds().toString().padStart(2, "0"); setUptime(days + "d " + hours + ":" + minutes + ":" + seconds); } }, [status?.start_time]); useInterval(update, 1000); useDocumentTitle("Status - Bazarr (System)"); return (
{status?.bazarr_version} {status?.package_version !== "" && ( {status?.package_version} )} {status?.sonarr_version} {status?.radarr_version} {status?.operating_system} {status?.python_version} {status?.bazarr_directory} {status?.bazarr_config_directory} {uptime} {status?.timezone}
); }; export default SystemStatusView;