From f696d33b645c53369ec5833593bdc77c9fb7cea9 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Tue, 9 Apr 2024 19:05:28 +0100 Subject: fix: Delete the API key on logout from phone or extension --- packages/shared-react/providers/trpc-provider.tsx | 50 +++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 packages/shared-react/providers/trpc-provider.tsx (limited to 'packages/shared-react/providers') diff --git a/packages/shared-react/providers/trpc-provider.tsx b/packages/shared-react/providers/trpc-provider.tsx new file mode 100644 index 00000000..2cd8661b --- /dev/null +++ b/packages/shared-react/providers/trpc-provider.tsx @@ -0,0 +1,50 @@ +import { useMemo } from "react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { httpBatchLink } from "@trpc/client"; +import superjson from "superjson"; + +import { api } from "../trpc"; + +interface Settings { + apiKey?: string; + address: string; +} + +function getTRPCClient(settings: Settings) { + return api.createClient({ + links: [ + httpBatchLink({ + url: `${settings.address}/api/trpc`, + headers() { + return { + Authorization: settings.apiKey + ? `Bearer ${settings.apiKey}` + : undefined, + }; + }, + transformer: superjson, + }), + ], + }); +} + +export function TRPCProvider({ + settings, + children, +}: { + settings: Settings; + children: React.ReactNode; +}) { + const queryClient = useMemo(() => new QueryClient(), [settings]); + const trpcClient = useMemo(() => getTRPCClient(settings), [settings]); + + return ( + + {children} + + ); +} -- cgit v1.2.3-70-g09d2