import { useContext } from "react"; import { DocumentNode, QueryResult, useQuery } from "@apollo/client"; import { SaleorContext } from "../components/SaleorProvider"; const CreateSaleorStateHook = ( query: DocumentNode ): QueryResult => { 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 ?" ); } return useQuery(query, { client: saleorClient._internal.apolloClient, fetchPolicy: "cache-only", }); }; export const hookStateFactory = ( query: DocumentNode ): QueryResult => CreateSaleorStateHook(query);