"use client"; import { SessionProvider } from "next-auth/react"; import { Toaster } from "react-hot-toast"; import GlobalLoginModal from "@/components/auth/GlobalLoginModal"; import { useSyncMe } from "@/hooks/useSyncMe"; /** * 登录后把服务端 /api/me 同步到本地 vote store 的隐形组件。 * 必须放在 SessionProvider 内部才能拿到 useSession。 */ function SyncMeBridge() { useSyncMe(); return null; } /** * 客户端全局 Provider 集合 * - SessionProvider: 让 client 组件能用 useSession() * - SyncMeBridge: 登录后用 /api/me 覆盖本地票数态(跨设备同步关键) * - Toaster: 全站 toast 容器(紫调样式,自动叠加) */ export default function Providers({ children }: { children: React.ReactNode }) { return ( {children} ); }