import Heading from "@/components/ui/heading"; import { Label } from "@/components/ui/label"; import { useEffect } from "react"; import { Toaster } from "sonner"; import { Separator } from "../../components/ui/separator"; import useSWR from "swr"; import { FrigateConfig } from "@/types/frigateConfig"; import { CheckCircle2, XCircle } from "lucide-react"; import { Trans, useTranslation } from "react-i18next"; import { IoIosWarning } from "react-icons/io"; import { Link } from "react-router-dom"; import { LuExternalLink } from "react-icons/lu"; export default function FrigatePlusSettingsView() { const { data: config } = useSWR("config"); const { t } = useTranslation("views/settings"); useEffect(() => { document.title = t("documentTitle.frigatePlus"); }, [t]); const needCleanSnapshots = () => { if (!config) { return false; } return Object.values(config.cameras).some( (camera) => camera.snapshots.enabled && !camera.snapshots.clean_copy, ); }; return ( <>
{t("frigatePlus.title")} {t("frigatePlus.apiKey.title")}
{config?.plus?.enabled ? ( ) : ( )}

{t("frigatePlus.apiKey.desc")}

{!config?.model.plus && ( <>
{t("frigatePlus.apiKey.plusLink")}
)}
{config?.model.plus && ( <>
{t("frigatePlus.modelInfo.title")}
{!config?.model?.plus && (

{t("frigatePlus.modelInfo.loading")}

)} {config?.model?.plus === null && (

{t("frigatePlus.modelInfo.error")}

)} {config?.model?.plus && (

{config.model.plus.name}

{new Date( config.model.plus.trainDate, ).toLocaleString()}

{config.model.plus.id}

{config.model.plus.baseModel}

{config.model.plus.supportedDetectors.join(", ")}

)}
)}
{t("frigatePlus.snapshotConfig.title")}

frigatePlus.snapshotConfig.desc

{t("frigatePlus.snapshotConfig.documentation")}
{config && (
{Object.entries(config.cameras).map( ([name, camera]) => ( ), )}
{t("frigatePlus.snapshotConfig.table.camera")} {t("frigatePlus.snapshotConfig.table.snapshots")} frigatePlus.snapshotConfig.table.cleanCopySnapshots
{name} {camera.snapshots.enabled ? ( ) : ( )} {camera.snapshots?.enabled && camera.snapshots?.clean_copy ? ( ) : ( )}
)} {needCleanSnapshots() && (
frigatePlus.snapshotConfig.cleanCopyWarning
)}
); }