UNPKG

@shopify/react-graphql

Version:

Tools for creating type-safe and asynchronous GraphQL components for React

24 lines (23 loc) 765 B
import { createResolver } from '@shopify/async'; import { useAsync, AssetTiming } from '@shopify/react-async'; import { useBackgroundQuery } from '../hooks'; export function createAsyncQuery({ id, load, }) { const resolver = createResolver({ id, load }); function usePreload() { return useAsync(resolver, { assets: AssetTiming.NextPage }).load; } function usePrefetch(options) { const load = usePreload(); return useBackgroundQuery(load, options); } function useKeepFresh(options) { const load = usePreload(); return useBackgroundQuery(load, Object.assign({ pollInterval: 10000 }, options)); } return { resolver, usePreload, usePrefetch, useKeepFresh, }; }