import { MenuAlt2Icon } from '@heroicons/react/outline'; import { ArrowLeftIcon } from '@heroicons/react/solid'; import { useRouter } from 'next/router'; import React, { useEffect, useState } from 'react'; import type { AvailableLocale } from '../../context/LanguageContext'; import useLocale from '../../hooks/useLocale'; import useSettings from '../../hooks/useSettings'; import { useUser } from '../../hooks/useUser'; import SearchInput from './SearchInput'; import Sidebar from './Sidebar'; import UserDropdown from './UserDropdown'; const Layout: React.FC = ({ children }) => { const [isSidebarOpen, setSidebarOpen] = useState(false); const [isScrolled, setIsScrolled] = useState(false); const { user } = useUser(); const router = useRouter(); const { currentSettings } = useSettings(); const { setLocale } = useLocale(); useEffect(() => { if (setLocale && user) { setLocale( (user?.settings?.locale ? user.settings.locale : currentSettings.locale) as AvailableLocale ); } }, [setLocale, currentSettings.locale, user]); useEffect(() => { const updateScrolled = () => { if (window.pageYOffset > 20) { setIsScrolled(true); } else { setIsScrolled(false); } }; window.addEventListener('scroll', updateScrolled, { passive: true }); return () => { window.removeEventListener('scroll', updateScrolled); }; }, []); return (
setSidebarOpen(false)} />
{children}
); }; export default Layout;