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/package.json | 4 +- packages/shared-react/providers/trpc-provider.tsx | 50 +++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 packages/shared-react/providers/trpc-provider.tsx (limited to 'packages/shared-react') diff --git a/packages/shared-react/package.json b/packages/shared-react/package.json index 46a2adb5..5e0a1d23 100644 --- a/packages/shared-react/package.json +++ b/packages/shared-react/package.json @@ -5,7 +5,9 @@ "private": true, "dependencies": { "@hoarder/trpc": "workspace:^0.1.0", - "@tanstack/react-query": "^5.24.8" + "@tanstack/react-query": "^5.24.8", + "superjson": "^2.2.1", + "@trpc/client": "11.0.0-next-beta.308" }, "devDependencies": { "@hoarder/eslint-config": "workspace:^0.2.0", 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