From cb4cc2cce9c817321042b17b5d7f91d2424d215d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20Codo=C3=B1er?= Date: Thu, 24 Apr 2025 14:46:28 +0200 Subject: [PATCH 1/6] update changelog and bump 4.0.0-beta.0 version --- packages/react-meteor-data/CHANGELOG.md | 5 +++++ packages/react-meteor-data/package.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-meteor-data/CHANGELOG.md b/packages/react-meteor-data/CHANGELOG.md index d8fe25e6..ae4c26ed 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 [#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), [#430](https://github.com/meteor/react-packages/pull/430) and [#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.js b/packages/react-meteor-data/package.js index c5d0673f..5259151a 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.0', documentation: 'README.md', git: 'https://github.com/meteor/react-packages' }) From f1566bbf787458979a2a8492765622c5c301a240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20Codo=C3=B1er?= Date: Thu, 24 Apr 2025 14:59:00 +0200 Subject: [PATCH 2/6] update changelog --- packages/react-meteor-data/CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-meteor-data/CHANGELOG.md b/packages/react-meteor-data/CHANGELOG.md index ae4c26ed..a104cf9f 100644 --- a/packages/react-meteor-data/CHANGELOG.md +++ b/packages/react-meteor-data/CHANGELOG.md @@ -1,9 +1,9 @@ # CHANGELOG ## v4.0.0-beta.0, xxx -* Breaking change: useFind describes no deps by default [#431](https://github.com/meteor/react-packages/pull/431) +* 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), [#430](https://github.com/meteor/react-packages/pull/430) and [#441](https://github.com/meteor/react-packages/pull/441) +* 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. From 853e489f242004dccf07a2f25c49114f6082826e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20Codo=C3=B1er?= Date: Thu, 24 Apr 2025 14:59:15 +0200 Subject: [PATCH 3/6] update changelog --- packages/react-meteor-data/.versions | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-meteor-data/.versions b/packages/react-meteor-data/.versions index e6b11aca..97537abd 100644 --- a/packages/react-meteor-data/.versions +++ b/packages/react-meteor-data/.versions @@ -26,7 +26,7 @@ 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 +local-test:react-meteor-data@4.0.0-beta.0 logging@1.3.5 meteor@2.1.0 minimongo@2.0.2 @@ -43,7 +43,7 @@ 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.0 reactive-dict@1.3.2 reactive-var@1.0.13 reload@1.3.2 From bccd050dacd9cb0c034d7cd8d762450f7d1ff1d8 Mon Sep 17 00:00:00 2001 From: italo jose Date: Mon, 9 Jun 2025 15:55:29 -0300 Subject: [PATCH 4/6] chore: update package versions and add package-lock.json --- .../.npm/package/npm-shrinkwrap.json | 5 ----- packages/react-meteor-data/.versions | 21 ++++++++++--------- packages/react-meteor-data/package-lock.json | 10 +++++++++ packages/react-meteor-data/package.js | 4 ++-- 4 files changed, 23 insertions(+), 17 deletions(-) create mode 100644 packages/react-meteor-data/package-lock.json 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 97537abd..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@4.0.0-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@4.0.0-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/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 5259151a..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: '4.0.0-beta.0', + 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 }) }) From d6b054053b4a88e5ea6eafefd655a075f3df788a Mon Sep 17 00:00:00 2001 From: Poyoman <9864413+Poyoman39@users.noreply.github.com> Date: Fri, 21 Mar 2025 09:58:50 +0100 Subject: [PATCH 5/6] UseFind should work like other hooks useFind default behavior is to have a void array as deps. This is confusing and leading to bugs hard to find --- packages/react-meteor-data/useFind.ts | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/packages/react-meteor-data/useFind.ts b/packages/react-meteor-data/useFind.ts index 59244e3d..c1f0a7b3 100644 --- a/packages/react-meteor-data/useFind.ts +++ b/packages/react-meteor-data/useFind.ts @@ -71,25 +71,7 @@ const fetchData = (cursor: Mongo.Cursor) => { return data } -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 useFindClient = (factory: () => (Mongo.Cursor | undefined | null), deps: DependencyList) => { const cursor = useMemo(() => { // To avoid creating side effects in render, opt out // of Tracker integration altogether. From 075e0eb40f36db180708d5ed3433b20db6f8e83f Mon Sep 17 00:00:00 2001 From: italo jose Date: Fri, 13 Jun 2025 08:37:01 -0300 Subject: [PATCH 6/6] putting back useSyncEffect --- packages/react-meteor-data/useFind.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/react-meteor-data/useFind.ts b/packages/react-meteor-data/useFind.ts index c1f0a7b3..4fbc9b6d 100644 --- a/packages/react-meteor-data/useFind.ts +++ b/packages/react-meteor-data/useFind.ts @@ -71,6 +71,23 @@ const fetchData = (cursor: Mongo.Cursor) => { return data } +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 cursor = useMemo(() => { // To avoid creating side effects in render, opt out