diff --git a/webapp/src/App.tsx b/webapp/src/App.tsx index 5f3956d..905fa08 100644 --- a/webapp/src/App.tsx +++ b/webapp/src/App.tsx @@ -155,6 +155,7 @@ export default function App() { const [confirm, setConfirm] = useState(null); const [mobileLayout, setMobileLayout] = useState(false); + const [mobileSidebarToggleKey, setMobileSidebarToggleKey] = useState(0); const [decryptedFolders, setDecryptedFolders] = useState([]); const [decryptedCiphers, setDecryptedCiphers] = useState([]); const [decryptedSends, setDecryptedSends] = useState([]); @@ -1198,6 +1199,7 @@ export default function App() { profile, session, mobileLayout, + mobileSidebarToggleKey, importRoute: IMPORT_ROUTE, settingsHomeRoute: SETTINGS_HOME_ROUTE, settingsAccountRoute: SETTINGS_ACCOUNT_ROUTE, @@ -1403,6 +1405,7 @@ export default function App() { onLock={handleLock} onLogout={handleLogout} onToggleTheme={handleToggleTheme} + onToggleMobileSidebar={() => setMobileSidebarToggleKey((key) => key + 1)} mainRoutesProps={mainRoutesProps} /> diff --git a/webapp/src/components/AppAuthenticatedShell.tsx b/webapp/src/components/AppAuthenticatedShell.tsx index da7e4b0..e5fa988 100644 --- a/webapp/src/components/AppAuthenticatedShell.tsx +++ b/webapp/src/components/AppAuthenticatedShell.tsx @@ -21,6 +21,7 @@ interface AppAuthenticatedShellProps { onLock: () => void; onLogout: () => void; onToggleTheme: () => void; + onToggleMobileSidebar: () => void; mainRoutesProps: AppMainRoutesProps; } @@ -51,7 +52,7 @@ export default function AppAuthenticatedShell(props: AppAuthenticatedShellProps) className="btn btn-secondary small mobile-sidebar-toggle" aria-label={props.sidebarToggleTitle} title={props.sidebarToggleTitle} - onClick={() => window.dispatchEvent(new CustomEvent('nodewarden:toggle-sidebar'))} + onClick={props.onToggleMobileSidebar} > diff --git a/webapp/src/components/AppGlobalOverlays.tsx b/webapp/src/components/AppGlobalOverlays.tsx index e6f8ab8..becbd6e 100644 --- a/webapp/src/components/AppGlobalOverlays.tsx +++ b/webapp/src/components/AppGlobalOverlays.tsx @@ -76,7 +76,7 @@ export default function AppGlobalOverlays(props: AppGlobalOverlaysProps) { {t('txt_totp_code')} props.onTotpCodeChange((e.currentTarget as HTMLInputElement).value)} /> -