UNPKG

@gqty/react

Version:

The No-GraphQL Client for React

32 lines (29 loc) 971 B
import { useMemo, useEffect } from 'react'; import { getDefault } from '../utils.mjs'; const IS_SERVER = typeof window === "undefined"; function createSSRHelpers({ hydrateCache, prepareRender, query, refetch }, { defaults: { refetchAfterHydrate } }) { const prepareReactRender = async function prepareReactRender2(element) { const ssrPrepass = getDefault(await import('react-ssr-prepass')); return prepareRender(() => ssrPrepass(element)); }; const useHydrateCache = function useHydrateCache2({ cacheSnapshot, shouldRefetch = refetchAfterHydrate }) { useMemo(() => { if (!IS_SERVER && cacheSnapshot) { hydrateCache({ cacheSnapshot, shouldRefetch: false }); } }, [cacheSnapshot]); useEffect(() => { if (!IS_SERVER && shouldRefetch) { refetch(query).catch(console.error); } }, [shouldRefetch]); }; return { useHydrateCache, prepareReactRender }; } export { createSSRHelpers };