UNPKG

@preact-signals/query

Version:

A reactive utility for React/Preact that simplifies the handling of data fetching and state management. Powered by Preact Signals, it provides hooks and functions to create reactive resources and manage their state seamlessly.

51 lines 2.19 kB
"use strict"; 'use client'; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Hydrate = exports.useHydrate = void 0; const React = __importStar(require("react")); const query_core_1 = require("@tanstack/query-core"); const QueryClientProvider_1 = require("./QueryClientProvider"); function useHydrate(state, options = {}) { const queryClient = (0, QueryClientProvider_1.useQueryClient)({ context: options.context }); const optionsRef = React.useRef(options); optionsRef.current = options; // Running hydrate again with the same queries is safe, // it wont overwrite or initialize existing queries, // relying on useMemo here is only a performance optimization. // hydrate can and should be run *during* render here for SSR to work properly React.useMemo(() => { if (state) { (0, query_core_1.hydrate)(queryClient, state, optionsRef.current); } }, [queryClient, state]); } exports.useHydrate = useHydrate; const Hydrate = ({ children, options, state }) => { useHydrate(state, options); return children; }; exports.Hydrate = Hydrate; //# sourceMappingURL=Hydrate.js.map