51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
"use client";
|
|
|
|
import { DndProvider } from "react-dnd";
|
|
import { MultiBackend, getBackendOptions } from "@minoru/react-dnd-treeview";
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
|
import { ConfirmProvider } from "@frontend-opensource/use-react-hooks";
|
|
import { AuthWrapper } from "@/src/entities/auth/lib/auth-wrapper";
|
|
import { MenuWrapper } from "@/src/entities/menu";
|
|
import { PromptProvider, StoreProvider } from "@/src/shared/providers";
|
|
import { AlertDialog } from "@/src/shared/ui/alert-dialog";
|
|
import { PromptDialog } from "@/src/shared/ui/prompt-dialog";
|
|
import { ConfirmDialog } from "@/src/shared/ui/confirm-dialog";
|
|
import { StoreProvider as FoStoreProvider } from "@/app/store";
|
|
|
|
|
|
const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => {
|
|
const queryClient = new QueryClient();
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<StoreProvider>
|
|
<PromptProvider>
|
|
<ConfirmProvider>
|
|
<AuthWrapper>
|
|
<MenuWrapper>
|
|
<DndProvider
|
|
backend={MultiBackend}
|
|
options={getBackendOptions()}
|
|
>
|
|
<FoStoreProvider>
|
|
{children}
|
|
</FoStoreProvider>
|
|
</DndProvider>
|
|
</MenuWrapper>
|
|
<AlertDialog />
|
|
<PromptDialog />
|
|
<ConfirmDialog />
|
|
|
|
</AuthWrapper>
|
|
</ConfirmProvider>
|
|
</PromptProvider>
|
|
</StoreProvider>
|
|
<div className="text-2xl">
|
|
<ReactQueryDevtools initialIsOpen={false} />
|
|
</div>
|
|
</QueryClientProvider>
|
|
);
|
|
};
|
|
|
|
export { AppProvider };
|