diff --git a/packages/web/components/templates/SettingsLayout.tsx b/packages/web/components/templates/SettingsLayout.tsx index 63b796046..9a5a806a9 100644 --- a/packages/web/components/templates/SettingsLayout.tsx +++ b/packages/web/components/templates/SettingsLayout.tsx @@ -6,7 +6,7 @@ import { useKeyboardShortcuts } from '../../lib/keyboardShortcuts/useKeyboardSho import { useRouter } from 'next/router' import { applyStoredTheme } from '../../lib/themeUpdater' import { logoutMutation } from '../../lib/networking/mutations/logoutMutation' -import { useState } from 'react' +import { useCallback, useEffect, useState } from 'react' import { ConfirmationModal } from '../patterns/ConfirmationModal' import { KeyboardShortcutListModal } from './KeyboardShortcutListModal' import { PageMetaData } from '../patterns/PageMetaData' @@ -29,6 +29,18 @@ export function SettingsLayout(props: SettingsLayoutProps): JSX.Element { useKeyboardShortcuts(navigationCommands(router)) applyStoredTheme(false) + const showLogout = useCallback(() => { + setShowLogoutConfirmation(true) + }, [setShowLogoutConfirmation]) + + useEffect(() => { + document.addEventListener('logout', showLogout) + + return () => { + document.removeEventListener('logout', showLogout) + } + }, [showLogout]) + return ( <>