/* * Copyright (c) 2021 - 2023, Ludvig Lundgren and the autobrr contributors. * SPDX-License-Identifier: GPL-2.0-or-later */ import toast from "react-hot-toast"; import { useMutation, useQuery } from "@tanstack/react-query"; import { Disclosure } from "@headlessui/react"; import { Bars3Icon, XMarkIcon, MegaphoneIcon } from "@heroicons/react/24/outline"; import { APIClient } from "@api/APIClient"; import { AuthContext } from "@utils/Context"; import Toast from "@components/notifications/Toast"; import { LeftNav } from "./LeftNav"; import { RightNav } from "./RightNav"; import { MobileNav } from "./MobileNav"; import { ExternalLink } from "@components/ExternalLink"; export const Header = () => { const { data: config } = useQuery({ queryKey: ["config"], queryFn: () => APIClient.config.get(), retry: false, refetchOnWindowFocus: false, onError: err => console.log(err) }); const { data } = useQuery({ queryKey: ["updates"], queryFn: () => APIClient.updates.getLatestRelease(), retry: false, refetchOnWindowFocus: false, enabled: config?.check_for_updates === true, onError: err => console.log(err) }); const logoutMutation = useMutation({ mutationFn: APIClient.auth.logout, onSuccess: () => { AuthContext.reset(); toast.custom((t) => ( )); } }); return ( {({ open }) => ( <> {/* Mobile menu button */} Open main menu {open ? ( ) : ( )} {data?.html_url && ( New update available! {data?.name} )} > )} ); };