mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Better hooks use
This commit is contained in:
parent
a86ae2ab93
commit
68e6533430
4 changed files with 26 additions and 17 deletions
|
|
@ -9,7 +9,7 @@ import { ConfirmationModal } from '../patterns/ConfirmationModal'
|
|||
import { KeyboardShortcutListModal } from './KeyboardShortcutListModal'
|
||||
import { setupAnalytics } from '../../lib/analytics'
|
||||
import { primaryCommands } from '../../lib/keyboardShortcuts/navigationShortcuts'
|
||||
import { logout } from '../../lib/logout'
|
||||
import { logout, useLogout } from '../../lib/logout'
|
||||
import { useApplyLocalTheme } from '../../lib/hooks/useApplyLocalTheme'
|
||||
import { useRegisterActions } from 'kbar'
|
||||
import { theme } from '../tokens/stitches.config'
|
||||
|
|
@ -108,6 +108,7 @@ export function NavigationLayout(props: NavigationLayoutProps): JSX.Element {
|
|||
}
|
||||
}, [showLogout])
|
||||
|
||||
const { logout } = useLogout()
|
||||
// if (isLoading) {
|
||||
// return (
|
||||
// <HStack
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { ConfirmationModal } from '../patterns/ConfirmationModal'
|
|||
import { KeyboardShortcutListModal } from './KeyboardShortcutListModal'
|
||||
import { setupAnalytics } from '../../lib/analytics'
|
||||
import { primaryCommands } from '../../lib/keyboardShortcuts/navigationShortcuts'
|
||||
import { logout } from '../../lib/logout'
|
||||
import { logout, useLogout } from '../../lib/logout'
|
||||
import { useApplyLocalTheme } from '../../lib/hooks/useApplyLocalTheme'
|
||||
import { updateTheme } from '../../lib/themeUpdater'
|
||||
import { Priority, useRegisterActions } from 'kbar'
|
||||
|
|
@ -96,6 +96,8 @@ export function PrimaryLayout(props: PrimaryLayoutProps): JSX.Element {
|
|||
}
|
||||
}, [showLogout])
|
||||
|
||||
const { logout } = useLogout()
|
||||
|
||||
return (
|
||||
<>
|
||||
{props.pageMetaDataProps ? (
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import { ConfirmationModal } from '../patterns/ConfirmationModal'
|
|||
import { KeyboardShortcutListModal } from './KeyboardShortcutListModal'
|
||||
import { PageMetaData } from '../patterns/PageMetaData'
|
||||
import { DEFAULT_HEADER_HEIGHT } from './homeFeed/HeaderSpacer'
|
||||
import { logout } from '../../lib/logout'
|
||||
import { logout, useLogout } from '../../lib/logout'
|
||||
import { SettingsMenu } from './navMenu/SettingsMenu'
|
||||
import { SettingsDropdown } from './navMenu/SettingsDropdown'
|
||||
import { useVerifyAuth } from '../../lib/hooks/useVerifyAuth'
|
||||
|
|
@ -75,6 +75,8 @@ export function SettingsLayout(props: SettingsLayoutProps): JSX.Element {
|
|||
}
|
||||
}, [showLogout])
|
||||
|
||||
const { logout } = useLogout()
|
||||
|
||||
return (
|
||||
<VStack
|
||||
alignment="start"
|
||||
|
|
|
|||
|
|
@ -1,20 +1,24 @@
|
|||
import { useQueryClient } from '@tanstack/react-query'
|
||||
import { deinitAnalytics } from './analytics'
|
||||
import { logoutMutation } from './networking/mutations/logoutMutation'
|
||||
import { useCallback } from 'react'
|
||||
|
||||
export const logout = async () => {
|
||||
const queryClient = useQueryClient()
|
||||
await logoutMutation()
|
||||
try {
|
||||
const result = await logoutMutation()
|
||||
if (!result) {
|
||||
throw new Error('Logout failed')
|
||||
export const useLogout = () => {
|
||||
const logout = useCallback(async () => {
|
||||
const queryClient = useQueryClient()
|
||||
await logoutMutation()
|
||||
try {
|
||||
const result = await logoutMutation()
|
||||
if (!result) {
|
||||
throw new Error('Logout failed')
|
||||
}
|
||||
deinitAnalytics()
|
||||
queryClient.clear()
|
||||
window.location.href = '/login'
|
||||
} catch {
|
||||
// TODO: display an error message instead
|
||||
window.location.href = '/'
|
||||
}
|
||||
deinitAnalytics()
|
||||
queryClient.clear()
|
||||
window.location.href = '/login'
|
||||
} catch {
|
||||
// TODO: display an error message instead
|
||||
window.location.href = '/'
|
||||
}
|
||||
}, [])
|
||||
return { logout }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue