Files
lotteryFront/src/components/providers.tsx

35 lines
879 B
TypeScript

"use client";
import { useEffect, type ReactNode } from "react";
import { Toaster } from "@/components/ui/sonner";
import { ErrorProvider } from "@/components/error-provider";
import { IframeBridge } from "@/components/iframe-bridge";
import { TokenRefreshIndicator } from "@/components/token-refresh-indicator";
import "@/i18n";
import { syncPreferredLanguage } from "@/i18n";
type ProvidersProps = {
children: ReactNode;
};
export function Providers({ children }: ProvidersProps): ReactNode {
useEffect(() => {
syncPreferredLanguage();
}, []);
return (
<>
<ErrorProvider>
{/* iframe 通信桥接 - 支持主站嵌入 */}
<IframeBridge>
{children}
{/* Token 续签指示器 - 显示在右下角 */}
<TokenRefreshIndicator />
</IframeBridge>
</ErrorProvider>
<Toaster />
</>
);
}