import { Button, IconButton, Tooltip } from "@mui/joy"; import clsx from "clsx"; import { Suspense, useEffect, useState } from "react"; import { Outlet, useLocation } from "react-router-dom"; import useLocalStorage from "react-use/lib/useLocalStorage"; import Icon from "@/components/Icon"; import Navigation from "@/components/Navigation"; import useCurrentUser from "@/hooks/useCurrentUser"; import useResponsiveWidth from "@/hooks/useResponsiveWidth"; import Loading from "@/pages/Loading"; import { Routes } from "@/router"; const HomeLayout = () => { const location = useLocation(); const { sm } = useResponsiveWidth(); const currentUser = useCurrentUser(); const [collapsed, setCollapsed] = useLocalStorage("navigation-collapsed", false); const [initialized, setInitialized] = useState(false); // Redirect to explore page if not logged in. useEffect(() => { if ( !currentUser && ([Routes.HOME, Routes.TIMELINE, Routes.RESOURCES, Routes.INBOX, Routes.ARCHIVED, Routes.SETTING] as string[]).includes( location.pathname, ) ) { window.location.href = Routes.EXPLORE; return; } setInitialized(true); }, []); return !initialized ? ( ) : (
{sm && (
setCollapsed(!collapsed)} > {!collapsed ? ( ) : ( )}
)}
}>
); }; export default HomeLayout;