aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/lib/providers.tsx
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-16 20:33:00 +0000
committerMohamedBassem <me@mbassem.com>2024-02-16 20:33:00 +0000
commit6febe13b3f4ad4eff3f205ece445b3577255bf41 (patch)
tree776e5dd7337ce21eaf6f4b7efc71cd587c21bf9d /packages/web/lib/providers.tsx
parente4f4270790936db81364bab057d3cdb4bbdaa31e (diff)
downloadkarakeep-6febe13b3f4ad4eff3f205ece445b3577255bf41.tar.zst
Migrating to react query for client side queries
Diffstat (limited to 'packages/web/lib/providers.tsx')
-rw-r--r--packages/web/lib/providers.tsx33
1 files changed, 33 insertions, 0 deletions
diff --git a/packages/web/lib/providers.tsx b/packages/web/lib/providers.tsx
new file mode 100644
index 00000000..e81645dd
--- /dev/null
+++ b/packages/web/lib/providers.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
+import React, { useState } from "react";
+import { api } from "./trpc";
+import { loggerLink } from "@trpc/client";
+import { httpBatchLink } from "@trpc/client";
+
+export default function Providers({ children }: { children: React.ReactNode }) {
+ const [queryClient] = React.useState(() => new QueryClient());
+
+ const [trpcClient] = useState(() =>
+ api.createClient({
+ links: [
+ loggerLink({
+ enabled: (op) =>
+ process.env.NODE_ENV === "development" ||
+ (op.direction === "down" && op.result instanceof Error),
+ }),
+ httpBatchLink({
+ // TODO: Change this to be a full URL exposed as a client side setting
+ url: `/api/trpc`,
+ }),
+ ],
+ }),
+ );
+
+ return (
+ <api.Provider client={trpcClient} queryClient={queryClient}>
+ <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
+ </api.Provider>
+ );
+}