feat(web): Next.js 15 app shell, auth, i18n, base UI
App Router setup with next-intl (en/fr), Better Auth wiring, shadcn/ui components, Tailwind, AES-256-GCM encrypt util, Redis rate limiter, tier limit checker, site_settings helper for runtime .env overrides.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "next-themes";
|
||||
import { Toaster } from "@/components/ui/sonner";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import { I18nProvider, type Locale } from "@/lib/i18n/provider";
|
||||
import en from "@/messages/en.json";
|
||||
import fr from "@/messages/fr.json";
|
||||
|
||||
const messages = { en, fr } as Record<string, Record<string, unknown>>;
|
||||
|
||||
export function Providers({
|
||||
children,
|
||||
initialLocale,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
initialLocale?: Locale;
|
||||
}) {
|
||||
return (
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<I18nProvider messages={messages} initialLocale={initialLocale}>
|
||||
<TooltipProvider>
|
||||
{children}
|
||||
<Toaster richColors position="top-right" />
|
||||
</TooltipProvider>
|
||||
</I18nProvider>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user