import { Box, HStack, SpanBox, VStack } from '../elements/LayoutPrimitives'
import { useRouter } from 'next/router'
import { applyStoredTheme } from '../../lib/themeUpdater'
import { useCallback, useEffect, useState } from 'react'
import { ConfirmationModal } from '../patterns/ConfirmationModal'
import { KeyboardShortcutListModal } from './KeyboardShortcutListModal'
import { PageMetaData } from '../patterns/PageMetaData'
import { DEFAULT_HEADER_HEIGHT } from './homeFeed/HeaderSpacer'
import { useLogout } from '../../lib/logout'
import { SettingsMenu } from './navMenu/SettingsMenu'
import { SettingsDropdown } from './navMenu/SettingsDropdown'
import { useVerifyAuth } from '../../lib/hooks/useVerifyAuth'
import Link from 'next/link'
import { CaretLeft } from '@phosphor-icons/react'
import { DEFAULT_HOME_PATH } from '../../lib/navigations'
type SettingsLayoutProps = {
title?: string
children: React.ReactNode
}
const ReturnButton = (): JSX.Element => {
return (
Return to library
)
}
export function SettingsLayout(props: SettingsLayoutProps): JSX.Element {
useVerifyAuth()
const router = useRouter()
const [showLogoutConfirmation, setShowLogoutConfirmation] = useState(false)
const [showKeyboardCommandsModal, setShowKeyboardCommandsModal] =
useState(false)
applyStoredTheme()
const showLogout = useCallback(() => {
setShowLogoutConfirmation(true)
}, [setShowLogoutConfirmation])
useEffect(() => {
document.addEventListener('logout', showLogout)
return () => {
document.removeEventListener('logout', showLogout)
}
}, [showLogout])
const { logout } = useLogout()
return (
{props.children}
{showLogoutConfirmation ? (
setShowLogoutConfirmation(false)}
/>
) : null}
{showKeyboardCommandsModal ? (
setShowKeyboardCommandsModal(false)}
/>
) : null}
)
}