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;