UNPKG

@saleor/sdk

Version:
26 lines (20 loc) 706 B
import { useContext } from "react"; import { SaleorClient } from "../../core/types"; import { SaleorContext } from "../components/SaleorProvider"; const CreateSaleorHook = <T extends keyof SaleorClient>( key: T ): SaleorClient[T] => { const saleorClient = useContext(SaleorContext); if (!saleorClient) { throw new Error( "Could not find saleor's apollo client in the context. Did you forget to wrap the root component in a <SaleorProvider>?" ); } const getHookData = (): SaleorClient[T] => { return saleorClient[key]; }; return getHookData(); }; export const hookFactory = <T extends keyof SaleorClient>( query: T ) => (): SaleorClient[T] => CreateSaleorHook(query);