UNPKG

relay-hooks

Version:
77 lines (58 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLazyLoadQuery = exports.useQuery = void 0; var react_1 = require("react"); var QueryFetcher_1 = require("./QueryFetcher"); var useForceUpdate_1 = require("./useForceUpdate"); var useRelayEnvironment_1 = require("./useRelayEnvironment"); var Utils_1 = require("./Utils"); var useInternalQuery = function (gqlQuery, variables, options, suspense) { var environment = (0, useRelayEnvironment_1.useRelayEnvironment)(); var forceUpdate = (0, useForceUpdate_1.useForceUpdate)(); var ref = (0, react_1.useRef)(undefined); var maybeHiddenOrFastRefresh = (0, react_1.useRef)(false); if (ref.current === null || ref.current === undefined || maybeHiddenOrFastRefresh.current == true) { ref.current = { queryFetcher: (0, QueryFetcher_1.getOrCreateQueryFetcher)(suspense, gqlQuery, variables, options.networkCacheConfig) }; maybeHiddenOrFastRefresh.current = false; } (0, react_1.useEffect)(function () { if (maybeHiddenOrFastRefresh.current == true) { forceUpdate(); } return function () { ref.current.queryFetcher.dispose(); maybeHiddenOrFastRefresh.current = true; }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); var queryFetcher = ref.current.queryFetcher; queryFetcher.resolve(environment, gqlQuery, variables, options); queryFetcher.checkAndSuspense(suspense, suspense); queryFetcher.setForceUpdate(forceUpdate); return queryFetcher.getData(); }; var useQuery = function (gqlQuery, variables, options) { if (variables === void 0) { variables = {}; } if (options === void 0) { options = {}; } return useInternalQuery(gqlQuery, variables, options, false); }; exports.useQuery = useQuery; var useLazyLoadQuery = function (gqlQuery, variables, options) { var _a; if (variables === void 0) { variables = {}; } if (options === void 0) { options = {}; } options.networkCacheConfig = (_a = options.networkCacheConfig) !== null && _a !== void 0 ? _a : Utils_1.forceCache; return useInternalQuery(gqlQuery, variables, options, true); }; exports.useLazyLoadQuery = useLazyLoadQuery;