diff --git a/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json b/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json index 8dffe844..b0da3142 100644 --- a/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json +++ b/packages/react-meteor-data/.npm/package/npm-shrinkwrap.json @@ -5,11 +5,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, - "lodash.remove": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.remove/-/lodash.remove-4.7.0.tgz", - "integrity": "sha512-GnwkSsEXGXirSxh3YI+jc/qvptE2DV8ZjA4liK0NT1MJ3mNDMFhX3bY+4Wr8onlNItYuPp7/4u19Fi55mvzkTw==" } } } diff --git a/packages/react-meteor-data/.versions b/packages/react-meteor-data/.versions index e6b11aca..96d1b844 100644 --- a/packages/react-meteor-data/.versions +++ b/packages/react-meteor-data/.versions @@ -11,29 +11,29 @@ core-runtime@1.0.0 ddp@1.4.2 ddp-client@3.1.0 ddp-common@1.4.4 -ddp-server@3.1.0 +ddp-server@3.1.2 diff-sequence@1.1.3 dynamic-import@0.7.4 ecmascript@0.16.10 ecmascript-runtime@0.8.3 -ecmascript-runtime-client@0.12.2 +ecmascript-runtime-client@0.12.3 ecmascript-runtime-server@0.11.1 ejson@1.1.4 facts-base@1.0.2 -fetch@0.1.5 +fetch@0.1.6 geojson-utils@1.0.12 htmljs@2.0.1 id-map@1.2.0 inter-process-messaging@0.1.2 jquery@3.0.2 -local-test:react-meteor-data@3.0.4-beta.0 -logging@1.3.5 +local-test:react-meteor-data@4.0.0-beta.1 +logging@1.3.6 meteor@2.1.0 minimongo@2.0.2 -modern-browsers@0.2.0 +modern-browsers@0.2.1 modules@0.20.3 modules-runtime@0.13.2 -mongo@2.1.0 +mongo@2.1.1 mongo-decimal@0.2.0 mongo-dev-server@1.1.1 mongo-id@1.0.9 @@ -43,17 +43,18 @@ ordered-dict@1.2.0 promise@1.0.0 random@1.2.2 react-fast-refresh@0.2.9 -react-meteor-data@3.0.4-beta.0 +react-meteor-data@4.0.0-beta.1 reactive-dict@1.3.2 reactive-var@1.0.13 reload@1.3.2 retry@1.1.1 routepolicy@1.1.2 socket-stream-client@0.6.0 -test-helpers@2.0.2 +test-helpers@2.0.3 tinytest@1.3.1 tracker@1.3.4 typescript@5.6.3 underscore@1.6.4 -webapp@2.0.5 +webapp@2.0.6 webapp-hashing@1.1.2 +zodern:types@1.0.13 diff --git a/packages/react-meteor-data/CHANGELOG.md b/packages/react-meteor-data/CHANGELOG.md index d8fe25e6..a104cf9f 100644 --- a/packages/react-meteor-data/CHANGELOG.md +++ b/packages/react-meteor-data/CHANGELOG.md @@ -1,5 +1,10 @@ # CHANGELOG +## v4.0.0-beta.0, xxx +* Breaking change: useFind describes no deps by default [PR#431](https://github.com/meteor/react-packages/pull/431) +* Fix concurrency issue with useFind [PR#419](https://github.com/meteor/react-packages/pull/419) +* Improve `useFind` and `useSubscribe` React suspense hooks [PR#420](https://github.com/meteor/react-packages/pull/429), [PR#430](https://github.com/meteor/react-packages/pull/430) and [PR#441](https://github.com/meteor/react-packages/pull/441) + ## v3.0.3, 2024-12-30 * Add `useSubscribeSuspenseServer` hook to be used in SSR. diff --git a/packages/react-meteor-data/package-lock.json b/packages/react-meteor-data/package-lock.json new file mode 100644 index 00000000..de14476c --- /dev/null +++ b/packages/react-meteor-data/package-lock.json @@ -0,0 +1,10 @@ +{ + "name": "react-meteor-data", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-meteor-data" + } + } +} diff --git a/packages/react-meteor-data/package.js b/packages/react-meteor-data/package.js index c5d0673f..9386d552 100644 --- a/packages/react-meteor-data/package.js +++ b/packages/react-meteor-data/package.js @@ -3,7 +3,7 @@ Package.describe({ name: 'react-meteor-data', summary: 'React hook for reactively tracking Meteor data', - version: '3.0.6', + version: '4.0.0-beta.1', documentation: 'README.md', git: 'https://github.com/meteor/react-packages' }) @@ -17,7 +17,7 @@ Package.onUse((api) => { api.use('tracker') api.use('ecmascript') api.use('typescript') - api.use('zodern:types@1.0.13', 'server') + api.use('zodern:types@1.0.13') api.mainModule('index.ts', ['client', 'server'], { lazy: true }) }) diff --git a/packages/react-meteor-data/useFind.ts b/packages/react-meteor-data/useFind.ts index 59244e3d..4fbc9b6d 100644 --- a/packages/react-meteor-data/useFind.ts +++ b/packages/react-meteor-data/useFind.ts @@ -72,24 +72,23 @@ const fetchData = (cursor: Mongo.Cursor) => { } const useSyncEffect = (effect, deps) => { - const [cleanup, timeoutId] = useMemo( - () => { - const cleanup = effect(); - const timeoutId = setTimeout(cleanup, 1000); - return [cleanup, timeoutId]; - }, - deps - ); - - useEffect(() => { - clearTimeout(timeoutId); - - return cleanup; - }, [cleanup]); -}; - - -const useFindClient = (factory: () => (Mongo.Cursor | undefined | null), deps: DependencyList = []) => { + const [cleanup, timeoutId] = useMemo( + () => { + const cleanup = effect(); + const timeoutId = setTimeout(cleanup, 1000); + return [cleanup, timeoutId]; + }, + deps + ); + + useEffect(() => { + clearTimeout(timeoutId); + + return cleanup; + }, [cleanup]); + }; + +const useFindClient = (factory: () => (Mongo.Cursor | undefined | null), deps: DependencyList) => { const cursor = useMemo(() => { // To avoid creating side effects in render, opt out // of Tracker integration altogether.