diff --git a/src/app/deals/page.tsx b/src/app/deals/page.tsx
index a71aa15..fefadd3 100644
--- a/src/app/deals/page.tsx
+++ b/src/app/deals/page.tsx
@@ -15,6 +15,7 @@ import {
getBoardsOptions,
getProjectsOptions,
} from "@/lib/client/@tanstack/react-query.gen";
+import { combineProviders } from "@/utils/combineProviders";
import { DealsContextProvider } from "./contexts/DealsContext";
async function prefetchData() {
@@ -34,23 +35,24 @@ async function prefetchData() {
export default async function DealsPage() {
const queryClient = await prefetchData();
+ const Providers = combineProviders(
+ [HydrationBoundary, { state: dehydrate(queryClient) }],
+ [ProjectsContextProvider],
+ [BoardsContextProvider],
+ [StatusesContextProvider]
+ );
+
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
);
}
diff --git a/src/utils/combineProviders.tsx b/src/utils/combineProviders.tsx
new file mode 100644
index 0000000..beaa8a0
--- /dev/null
+++ b/src/utils/combineProviders.tsx
@@ -0,0 +1,25 @@
+import { ElementType, PropsWithChildren } from "react";
+
+type ProvidersType = [ElementType, Record] | [ElementType];
+
+export const combineProviders = (
+ ...componentsWithProps: Array
+): ElementType => {
+ const getInitial = ({ children }: PropsWithChildren) => children;
+
+ return componentsWithProps.reduce(
+ (
+ AccumulatedComponents: ElementType,
+ [Provider, props = {}]: ProvidersType
+ ) => {
+ return ({ children }: PropsWithChildren) => {
+ return (
+
+ {children}
+
+ );
+ };
+ },
+ getInitial
+ );
+};