Invalidate the router on sign out so account orders clear immediately

Signing out only clears the auth session cookie; a route already
loaded (e.g. /orders) keeps its stale loader data until something
triggers a reload. Call router.invalidate() once signOut succeeds so
the current route's loader reruns against the now-signed-out session.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-13 19:43:58 +02:00
co-authored by Claude Sonnet 5
parent a2e97c293d
commit f819b0cd46
+7 -2
View File
@@ -1,4 +1,4 @@
import { Link, useRouterState } from '@tanstack/react-router' import { Link, useRouter, useRouterState } from '@tanstack/react-router'
import { useEffect, useRef, useState } from 'react' import { useEffect, useRef, useState } from 'react'
import { authClient } from '#/lib/auth-client' import { authClient } from '#/lib/auth-client'
@@ -66,6 +66,7 @@ const LogOutIcon = () => (
const BetterAuthHeader = () => { const BetterAuthHeader = () => {
const { data: session, isPending } = authClient.useSession() const { data: session, isPending } = authClient.useSession()
const { clear: clearBasket } = useBasket() const { clear: clearBasket } = useBasket()
const router = useRouter()
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const wrapperRef = useRef<HTMLDivElement>(null) const wrapperRef = useRef<HTMLDivElement>(null)
const pathname = useRouterState({ const pathname = useRouterState({
@@ -150,7 +151,11 @@ const BetterAuthHeader = () => {
setOpen(false) setOpen(false)
clearGuestOrderRefs() clearGuestOrderRefs()
clearBasket() clearBasket()
void authClient.signOut() void authClient.signOut({
fetchOptions: {
onSuccess: () => void router.invalidate(),
},
})
}} }}
> >
<LogOutIcon /> <LogOutIcon />