{intl.formatMessage(messages.betawarning)}
import { MenuAlt2Icon } from '@heroicons/react/outline'; import { ArrowLeftIcon, InformationCircleIcon } from '@heroicons/react/solid'; import { useRouter } from 'next/router'; import React, { useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { AvailableLocale } from '../../context/LanguageContext'; import useLocale from '../../hooks/useLocale'; import useSettings from '../../hooks/useSettings'; import { Permission, useUser } from '../../hooks/useUser'; import SearchInput from './SearchInput'; import Sidebar from './Sidebar'; import UserDropdown from './UserDropdown'; const messages = defineMessages({ betawarning: 'This is BETA software. Features may be broken and/or unstable. Please report any issues on GitHub!', }); const Layout: React.FC = ({ children }) => { const [isSidebarOpen, setSidebarOpen] = useState(false); const [isScrolled, setIsScrolled] = useState(false); const { user, hasPermission } = useUser(); const router = useRouter(); const intl = useIntl(); 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 (
{intl.formatMessage(messages.betawarning)}