snowballtools-base/packages/frontend/src/context/GQLClientContext.tsx
2024-04-11 21:49:14 -05:00

25 lines
572 B
TypeScript

import { createContext, useContext, ReactNode } from 'react';
import { GQLClient } from 'gql-client';
const GQLClientContext = createContext({} as GQLClient);
export const GQLClientProvider = ({
client,
children,
}: {
children: ReactNode;
client: GQLClient;
}) => (
<GQLClientContext.Provider value={client}>
{children}
</GQLClientContext.Provider>
);
export const useGQLClient = () => {
const client = useContext(GQLClientContext);
if (!client) {
throw new Error('useGQLClient must be used within a GQLClientProvider');
}
return client;
};