UNPKG

@tanstack/react-db

Version:

React integration for @tanstack/db

34 lines (33 loc) 1.04 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const react = require("react"); const reactStore = require("@tanstack/react-store"); const db = require("@tanstack/db"); function useLiveQuery(queryFn, deps = []) { const [restart, forceRestart] = react.useState(0); const compiledQuery = react.useMemo(() => { const query = queryFn(db.queryBuilder()); const compiled = db.compileQuery(query); compiled.start(); return compiled; }, [...deps, restart]); const state = reactStore.useStore(compiledQuery.results.asStoreMap()); const data = reactStore.useStore(compiledQuery.results.asStoreArray()); react.useEffect(() => { if (compiledQuery.state === `stopped`) { forceRestart((count) => { return count += 1; }); } return () => { compiledQuery.stop(); }; }, [compiledQuery]); return { state, data, collection: compiledQuery.results }; } exports.useLiveQuery = useLiveQuery; //# sourceMappingURL=useLiveQuery.cjs.map