All files / packages/app/providers query.tsx

90% Statements 9/10
50% Branches 2/4
100% Functions 4/4
90% Lines 9/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40                              8070x       10837x 10837x 960x 960x 960x               10837x 10837x     10837x        
import React from "react";
 
import { QueryClientProvider } from "@tanstack/react-query";
 
import type { QueryClientsRecord } from "~app/contexts/query-clients-context";
import {
	QueryClientsContext,
	SELF_QUERY_CLIENT_KEY,
	getQueryClient,
} from "~app/contexts/query-clients-context";
 
type Props = {
	queryClientKey: keyof QueryClientsRecord;
};
 
export const QueryProvider: React.FC<React.PropsWithChildren<Props>> = ({
	queryClientKey,
	children,
}) => {
	const [queryClients, setQueryClients] = React.use(QueryClientsContext);
	React.useEffect(() => {
		setQueryClients((prevQueryClients) => {
			Eif (prevQueryClients[queryClientKey]) {
				return prevQueryClients;
			}
			return {
				...prevQueryClients,
				[queryClientKey]: getQueryClient(),
			};
		});
	}, [queryClientKey, setQueryClients]);
	const queryClient = React.useMemo(
		() => queryClients[queryClientKey] || queryClients[SELF_QUERY_CLIENT_KEY],
		[queryClientKey, queryClients],
	);
	return (
		<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
	);
};