wavelet init

This commit is contained in:
ryan
2026-06-18 15:24:48 +08:00
parent d6a7011885
commit 99738bbc17
714 changed files with 139987 additions and 0 deletions
@@ -0,0 +1,13 @@
"use client"
import {useUser} from "@/contexts/user-context"
/**
* Auth provider bridge hook
*
* Provides a stable interface for components that use the useAuth() pattern.
* Delegates to the canonical UserContext under the hood.
*/
export function useAuth() {
return useUser()
}
@@ -0,0 +1,23 @@
"use client"
import {QueryClient, QueryClientProvider} from "@tanstack/react-query"
import {useState} from "react"
export function AppQueryProvider({ children }: { children: React.ReactNode }) {
const [queryClient] = useState(
() =>
new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
refetchOnWindowFocus: false,
retry: 1,
},
},
}),
)
return (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
)
}
@@ -0,0 +1,36 @@
"use client"
import {useQuery} from '@tanstack/react-query'
import {useEffect} from 'react'
import {ConfigService} from '@/lib/services/config'
import {usePathname} from 'next/navigation'
export function SiteTitleUpdater() {
const pathname = usePathname()
const publicConfigQuery = useQuery({
queryKey: ["public-config"],
queryFn: () => ConfigService.getPublicConfig(),
})
useEffect(() => {
const siteName = publicConfigQuery.data?.site_name || "Wavelet Platform"
// Determine the page suffix based on path
let suffix = ""
if (pathname === "/login") {
suffix = " - 登录"
} else if (pathname === "/register") {
suffix = " - 注册"
} else if (pathname.startsWith("/admin")) {
suffix = " - 后台管理"
} else if (pathname === "/home") {
suffix = " - 控制台"
} else if (pathname === "/") {
suffix = ""
}
document.title = `${siteName}${suffix}`
}, [publicConfigQuery.data?.site_name, pathname])
return null
}