28 lines
845 B
TypeScript
28 lines
845 B
TypeScript
"use client";
|
|
|
|
import { SessionProvider } from "next-auth/react";
|
|
import { ThemeProvider } from "next-themes";
|
|
|
|
interface ProvidersProps {
|
|
children: React.ReactNode;
|
|
session?: any;
|
|
}
|
|
|
|
export default function Providers({ children, session }: ProvidersProps) {
|
|
try {
|
|
// Ensure session is properly handled - if it's undefined, provide null
|
|
const safeSession = session === undefined ? null : session;
|
|
|
|
return (
|
|
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
|
<SessionProvider session={safeSession} refetchInterval={5 * 60}>
|
|
{children}
|
|
</SessionProvider>
|
|
</ThemeProvider>
|
|
);
|
|
} catch (error) {
|
|
// If anything goes catastrophically wrong, at least render the children
|
|
console.error("Error in Providers component:", error);
|
|
return <>{children}</>;
|
|
}
|
|
}
|