/**
 * Provider principal pour l'application COOP-CA AMIFOND
 *
 * Combine tous les providers nécessaires pour l'application
 */

"use client";

import { type ReactNode } from "react";

import { Toaster } from "sonner";

import { ClientOnly } from "@/components/client-only";

import { HydrationProvider } from "./hydration-provider";
import { QueryProvider } from "./query-provider";

interface AppProvidersProps {
  readonly children: ReactNode;
}

export function AppProviders({ children }: AppProvidersProps) {
  return (
    <QueryProvider>
      <HydrationProvider>{children}</HydrationProvider>
      {/* Toast notifications - Client only to prevent hydration mismatch */}
      <ClientOnly>
        <Toaster
          position="top-center"
          toastOptions={{
            duration: 3000,
            style: {
              background: "hsl(var(--background))",
              color: "hsl(var(--foreground))",
              border: "1px solid hsl(var(--border))",
            },
          }}
        />
      </ClientOnly>
    </QueryProvider>
  );
}
