import { useState } from 'react' import './SettingsPage.styl' import { useScreenSizeDetection } from '@/useScreenSizeDetection' import { SettingErrorSnackbars } from './SettingErrorSnackbars' import { DesktopSettingsPage } from './DesktopSettingsPage' import { MobileSettingsPage } from './MobileSettingsPage' import { Menubar, type MenubarProps } from '@/components/Menubar/Menubar' export type SidebarNavItem = 'settings' | 'sync' export type SettingsSubTab = 'settings' | 'notifications' const SettingsPage: React.FC<{ menubarProps?: MenubarProps isInIframe?: boolean }> = ({ menubarProps, isInIframe }) => { const { isTooSmall: isMobile } = useScreenSizeDetection() const [activeSettingsSubTab, setActiveSettingsSubTab] = useState('settings') const [languageErrorOpen, setLanguageErrorOpen] = useState(false) const [timeZoneErrorOpen, setTimeZoneErrorOpen] = useState(false) const [alarmEmailsErrorOpen, setAlarmEmailsErrorOpen] = useState(false) const [hideDeclinedEventsErrorOpen, setHideDeclinedEventsErrorOpen] = useState(false) const [displayWeekNumbersErrorOpen, setDisplayWeekNumbersErrorOpen] = useState(false) const [workingDaysErrorOpen, setWorkingDaysErrorOpen] = useState(false) const handleSettingsSubTabChange = ( _event: React.SyntheticEvent, newValue: SettingsSubTab ): void => { setActiveSettingsSubTab(newValue) } const handleLanguageErrorClose = (): void => { setLanguageErrorOpen(false) } const handleTimeZoneErrorClose = (): void => { setTimeZoneErrorOpen(false) } const handleHideDeclinedEventsErrorClose = (): void => { setHideDeclinedEventsErrorOpen(false) } const handleAlarmEmailsErrorClose = (): void => { setAlarmEmailsErrorOpen(false) } const handleDisplayWeekNumbersErrorClose = (): void => { setDisplayWeekNumbersErrorOpen(false) } return ( <> {isInIframe && isMobile && menubarProps && }
{isMobile ? ( ) : ( )}
) } export default SettingsPage