import NavItem from "./NavItem"; import { IoIosWarning } from "react-icons/io"; import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer"; import useSWR from "swr"; import { FrigateStats } from "@/types/stats"; import { useFrigateStats } from "@/api/ws"; import { useContext, useEffect, useMemo } from "react"; import useStats from "@/hooks/use-stats"; import GeneralSettings from "../menu/GeneralSettings"; import AccountSettings from "../menu/AccountSettings"; import useNavigation from "@/hooks/use-navigation"; import { StatusBarMessagesContext, StatusMessage, } from "@/context/statusbar-provider"; function Bottombar() { const navItems = useNavigation("secondary"); return (
{navItems.map((item) => ( ))}
); } function StatusAlertNav() { const { data: initialStats } = useSWR("stats", { revalidateOnFocus: false, }); const { payload: latestStats } = useFrigateStats(); const { messages, addMessage, clearMessages } = useContext( StatusBarMessagesContext, )!; const stats = useMemo(() => { if (latestStats) { return latestStats; } return initialStats; }, [initialStats, latestStats]); const { potentialProblems } = useStats(stats); useEffect(() => { clearMessages("stats"); potentialProblems.forEach((problem) => { addMessage("stats", problem.text, problem.color); }); }, [potentialProblems, addMessage, clearMessages]); if (!messages || Object.keys(messages).length === 0) { return; } return (
{Object.entries(messages).map(([key, messageArray]) => (
{messageArray.map(({ id, text, color }: StatusMessage) => (
{text}
))}
))}
); } export default Bottombar;