import { Box, Center, createDisclosure, Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerHeader, DrawerOverlay, Flex, Heading, HStack, IconButton, useColorModeValue, } from "@hope-ui/solid" import { TiThMenu } from "solid-icons/ti" import { IoExit } from "solid-icons/io" import { SwitchColorMode, SwitchLanguageWhite } from "~/components" import { useFetch, useRouter, useT } from "~/hooks" import { SideMenu } from "./SideMenu" import { side_menu_items } from "./sidemenu_items" import { handleResp, notify, r } from "~/utils" import { clearUserData } from "~/utils/auth" import { PResp } from "~/types" const { isOpen, onOpen, onClose } = createDisclosure() const [logOutReqLoading, logOutReq] = useFetch( (): PResp => r.get("/auth/logout"), ) const Header = () => { const t = useT() const { to } = useRouter() const logOut = async () => { handleResp(await logOutReq(), () => { clearUserData() notify.success(t("manage.logout_success")) to(`/@login?redirect=${encodeURIComponent(location.pathname)}`) }) } return ( } display={{ "@sm": "none" }} onClick={onOpen} size="sm" /> { to("/@manage") }} > {t("manage.title")} } loading={logOutReqLoading()} onClick={logOut} size="sm" /> {t("manage.title")}
) } export { Header, onClose }