diff --git a/ui/homepage/app/logout/LogoutClient.tsx b/ui/homepage/app/logout/LogoutClient.tsx
new file mode 100644
index 0000000..2cfb2d2
--- /dev/null
+++ b/ui/homepage/app/logout/LogoutClient.tsx
@@ -0,0 +1,77 @@
+'use client'
+
+import { useEffect } from 'react'
+import { useRouter } from 'next/navigation'
+
+import Navbar from '@components/Navbar'
+import Footer from '@components/Footer'
+import { AskAIButton } from '@components/AskAIButton'
+import { useLanguage } from '@i18n/LanguageProvider'
+import { translations } from '@i18n/translations'
+import { useUser } from '@lib/userStore'
+
+export function LogoutClient() {
+ const router = useRouter()
+ const { logout } = useUser()
+ const { language } = useLanguage()
+ const navCopy = translations[language].nav.account
+ const signingOutMessage = language === 'zh' ? '正在安全退出,请稍候…' : 'Signing you out safely. One moment…'
+
+ useEffect(() => {
+ let cancelled = false
+
+ const performLogout = async () => {
+ try {
+ await logout()
+ } finally {
+ if (!cancelled) {
+ router.replace('/')
+ router.refresh()
+ }
+ }
+ }
+
+ void performLogout()
+
+ return () => {
+ cancelled = true
+ }
+ }, [logout, router])
+
+ return (
+
+
+
+
+
+
{navCopy.logout}
+
{signingOutMessage}
+
+
+
+
+
+ )
+}
diff --git a/ui/homepage/app/logout/page.tsx b/ui/homepage/app/logout/page.tsx
index 2e90b79..e0e1b81 100644
--- a/ui/homepage/app/logout/page.tsx
+++ b/ui/homepage/app/logout/page.tsx
@@ -1,76 +1,23 @@
-'use client'
+import { Suspense } from 'react'
-import { useEffect } from 'react'
-import { useRouter } from 'next/navigation'
-
-import Navbar from '@components/Navbar'
-import Footer from '@components/Footer'
-import { AskAIButton } from '@components/AskAIButton'
-import { useLanguage } from '@i18n/LanguageProvider'
-import { translations } from '@i18n/translations'
-import { useUser } from '@lib/userStore'
-
-export default function LogoutPage() {
- const router = useRouter()
- const { logout } = useUser()
- const { language } = useLanguage()
- const navCopy = translations[language].nav.account
- const signingOutMessage = language === 'zh' ? '正在安全退出,请稍候…' : 'Signing you out safely. One moment…'
-
- useEffect(() => {
- let cancelled = false
- const performLogout = async () => {
- try {
- await logout()
- } finally {
- if (!cancelled) {
- router.replace('/')
- router.refresh()
- }
- }
- }
-
- void performLogout()
-
- return () => {
- cancelled = true
- }
- }, [logout, router])
+import { LogoutClient } from './LogoutClient'
+function LogoutFallback() {
return (
-
-
-
{navCopy.logout}
-
{signingOutMessage}
+
-
-
)
}
+
+export default function LogoutPage() {
+ return (
+ }>
+
+
+ )
+}