#843 missing back button in settings on mobile (#849)

Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
This commit is contained in:
lethemanh
2026-04-29 22:38:47 +07:00
committed by GitHub
parent d66bc59967
commit c429306e77
2 changed files with 57 additions and 43 deletions
+3 -1
View File
@@ -121,7 +121,9 @@ export default function CalendarLayout(): JSX.Element {
currentView={currentView} currentView={currentView}
/> />
)} )}
{view === 'settings' && <SettingsPage isInIframe={isInIframe} />} {view === 'settings' && (
<SettingsPage menubarProps={menubarProps} isInIframe={isInIframe} />
)}
<ErrorSnackbar error={error} type="calendar" /> <ErrorSnackbar error={error} type="calendar" />
</div> </div>
) )
+54 -42
View File
@@ -4,11 +4,15 @@ import { useScreenSizeDetection } from '@/useScreenSizeDetection'
import { SettingErrorSnackbars } from './SettingErrorSnackbars' import { SettingErrorSnackbars } from './SettingErrorSnackbars'
import { DesktopSettingsPage } from './DesktopSettingsPage' import { DesktopSettingsPage } from './DesktopSettingsPage'
import { MobileSettingsPage } from './MobileSettingsPage' import { MobileSettingsPage } from './MobileSettingsPage'
import { Menubar, type MenubarProps } from '@/components/Menubar/Menubar'
export type SidebarNavItem = 'settings' | 'sync' export type SidebarNavItem = 'settings' | 'sync'
export type SettingsSubTab = 'settings' | 'notifications' export type SettingsSubTab = 'settings' | 'notifications'
const SettingsPage: React.FC<{ isInIframe?: boolean }> = ({ isInIframe }) => { const SettingsPage: React.FC<{
menubarProps?: MenubarProps
isInIframe?: boolean
}> = ({ menubarProps, isInIframe }) => {
const { isTooSmall: isMobile } = useScreenSizeDetection() const { isTooSmall: isMobile } = useScreenSizeDetection()
const [activeSettingsSubTab, setActiveSettingsSubTab] = const [activeSettingsSubTab, setActiveSettingsSubTab] =
@@ -46,49 +50,57 @@ const SettingsPage: React.FC<{ isInIframe?: boolean }> = ({ isInIframe }) => {
} }
return ( return (
<main <>
className={`main-layout settings-layout${isInIframe ? ' isInIframe' : ''} ${isMobile ? 'settings-layout--mobile' : ''}`} {isInIframe && isMobile && menubarProps && <Menubar {...menubarProps} />}
>
{isMobile ? ( <main
<MobileSettingsPage className={`main-layout settings-layout${isInIframe ? ' isInIframe' : ''} ${isMobile ? 'settings-layout--mobile' : ''}`}
activeSettingsSubTab={activeSettingsSubTab} >
setLanguageErrorOpen={setLanguageErrorOpen} {isMobile ? (
setTimeZoneErrorOpen={setTimeZoneErrorOpen} <MobileSettingsPage
setAlarmEmailsErrorOpen={setAlarmEmailsErrorOpen} activeSettingsSubTab={activeSettingsSubTab}
setHideDeclinedEventsErrorOpen={setHideDeclinedEventsErrorOpen} setLanguageErrorOpen={setLanguageErrorOpen}
setDisplayWeekNumbersErrorOpen={setDisplayWeekNumbersErrorOpen} setTimeZoneErrorOpen={setTimeZoneErrorOpen}
setAlarmEmailsErrorOpen={setAlarmEmailsErrorOpen}
setHideDeclinedEventsErrorOpen={setHideDeclinedEventsErrorOpen}
setDisplayWeekNumbersErrorOpen={setDisplayWeekNumbersErrorOpen}
setWorkingDaysErrorOpen={setWorkingDaysErrorOpen}
handleSettingsSubTabChange={handleSettingsSubTabChange}
setActiveSettingsSubTab={setActiveSettingsSubTab}
/>
) : (
<DesktopSettingsPage
activeSettingsSubTab={activeSettingsSubTab}
setLanguageErrorOpen={setLanguageErrorOpen}
setTimeZoneErrorOpen={setTimeZoneErrorOpen}
setAlarmEmailsErrorOpen={setAlarmEmailsErrorOpen}
setHideDeclinedEventsErrorOpen={setHideDeclinedEventsErrorOpen}
setDisplayWeekNumbersErrorOpen={setDisplayWeekNumbersErrorOpen}
setWorkingDaysErrorOpen={setWorkingDaysErrorOpen}
handleSettingsSubTabChange={handleSettingsSubTabChange}
setActiveSettingsSubTab={setActiveSettingsSubTab}
/>
)}
<SettingErrorSnackbars
languageErrorOpen={languageErrorOpen}
timeZoneErrorOpen={timeZoneErrorOpen}
alarmEmailsErrorOpen={alarmEmailsErrorOpen}
hideDeclinedEventsErrorOpen={hideDeclinedEventsErrorOpen}
displayWeekNumbersErrorOpen={displayWeekNumbersErrorOpen}
workingDaysErrorOpen={workingDaysErrorOpen}
handleLanguageErrorClose={handleLanguageErrorClose}
handleTimeZoneErrorClose={handleTimeZoneErrorClose}
handleAlarmEmailsErrorClose={handleAlarmEmailsErrorClose}
handleHideDeclinedEventsErrorClose={
handleHideDeclinedEventsErrorClose
}
handleDisplayWeekNumbersErrorClose={
handleDisplayWeekNumbersErrorClose
}
setWorkingDaysErrorOpen={setWorkingDaysErrorOpen} setWorkingDaysErrorOpen={setWorkingDaysErrorOpen}
handleSettingsSubTabChange={handleSettingsSubTabChange}
setActiveSettingsSubTab={setActiveSettingsSubTab}
/> />
) : ( </main>
<DesktopSettingsPage </>
activeSettingsSubTab={activeSettingsSubTab}
setLanguageErrorOpen={setLanguageErrorOpen}
setTimeZoneErrorOpen={setTimeZoneErrorOpen}
setAlarmEmailsErrorOpen={setAlarmEmailsErrorOpen}
setHideDeclinedEventsErrorOpen={setHideDeclinedEventsErrorOpen}
setDisplayWeekNumbersErrorOpen={setDisplayWeekNumbersErrorOpen}
setWorkingDaysErrorOpen={setWorkingDaysErrorOpen}
handleSettingsSubTabChange={handleSettingsSubTabChange}
setActiveSettingsSubTab={setActiveSettingsSubTab}
/>
)}
<SettingErrorSnackbars
languageErrorOpen={languageErrorOpen}
timeZoneErrorOpen={timeZoneErrorOpen}
alarmEmailsErrorOpen={alarmEmailsErrorOpen}
hideDeclinedEventsErrorOpen={hideDeclinedEventsErrorOpen}
displayWeekNumbersErrorOpen={displayWeekNumbersErrorOpen}
workingDaysErrorOpen={workingDaysErrorOpen}
handleLanguageErrorClose={handleLanguageErrorClose}
handleTimeZoneErrorClose={handleTimeZoneErrorClose}
handleAlarmEmailsErrorClose={handleAlarmEmailsErrorClose}
handleHideDeclinedEventsErrorClose={handleHideDeclinedEventsErrorClose}
handleDisplayWeekNumbersErrorClose={handleDisplayWeekNumbersErrorClose}
setWorkingDaysErrorOpen={setWorkingDaysErrorOpen}
/>
</main>
) )
} }