Skip to content

fix repeated renders when markReady called when collection already ready#603

Closed
samwillis wants to merge 3 commits intomainfrom
samwillis/uselivequery-no-render-when-changes-length-zero
Closed

fix repeated renders when markReady called when collection already ready#603
samwillis wants to merge 3 commits intomainfrom
samwillis/uselivequery-no-render-when-changes-length-zero

Conversation

@samwillis
Copy link
Collaborator

This fixes #597

We were emitting an empty change event whenever markReady was called, which would happed after each Electric long polling request returned.

The code related to this was changed previous to add this behaviour in #532 to fix a suck loading state. That PR introduced a test case that failed without this previous change. I was a little unsure if my change here would cause a regression, but it has not - I think this is due to other changes in the subscription system that has ensured the race condition is now fixed.

I'm comfortable that the previous test passes and so this is not introducing a regression.

@changeset-bot
Copy link

changeset-bot bot commented Sep 29, 2025

🦋 Changeset detected

Latest commit: d854f2b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
@tanstack/electric-db-collection Patch
@tanstack/db Patch
@tanstack/db-example-react-todo Patch
@tanstack/angular-db Patch
@tanstack/query-db-collection Patch
@tanstack/react-db Patch
@tanstack/rxdb-db-collection Patch
@tanstack/solid-db Patch
@tanstack/svelte-db Patch
@tanstack/trailbase-db-collection Patch
@tanstack/vue-db Patch
todos Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Sep 29, 2025

More templates

@tanstack/angular-db

npm i https://pkg.pr.new/@tanstack/angular-db@603

@tanstack/db

npm i https://pkg.pr.new/@tanstack/db@603

@tanstack/db-ivm

npm i https://pkg.pr.new/@tanstack/db-ivm@603

@tanstack/electric-db-collection

npm i https://pkg.pr.new/@tanstack/electric-db-collection@603

@tanstack/query-db-collection

npm i https://pkg.pr.new/@tanstack/query-db-collection@603

@tanstack/react-db

npm i https://pkg.pr.new/@tanstack/react-db@603

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/@tanstack/rxdb-db-collection@603

@tanstack/solid-db

npm i https://pkg.pr.new/@tanstack/solid-db@603

@tanstack/svelte-db

npm i https://pkg.pr.new/@tanstack/svelte-db@603

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/@tanstack/trailbase-db-collection@603

@tanstack/vue-db

npm i https://pkg.pr.new/@tanstack/vue-db@603

commit: d854f2b

@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 73.8 kB

ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 958 B
./packages/db/dist/esm/collection/changes.js 1.01 kB
./packages/db/dist/esm/collection/events.js 684 B
./packages/db/dist/esm/collection/index.js 3.14 kB
./packages/db/dist/esm/collection/indexes.js 1.16 kB
./packages/db/dist/esm/collection/lifecycle.js 1.72 kB
./packages/db/dist/esm/collection/mutations.js 2.59 kB
./packages/db/dist/esm/collection/state.js 3.78 kB
./packages/db/dist/esm/collection/subscription.js 1.69 kB
./packages/db/dist/esm/collection/sync.js 1.32 kB
./packages/db/dist/esm/deferred.js 230 B
./packages/db/dist/esm/errors.js 3.1 kB
./packages/db/dist/esm/index.js 1.56 kB
./packages/db/dist/esm/indexes/auto-index.js 745 B
./packages/db/dist/esm/indexes/base-index.js 605 B
./packages/db/dist/esm/indexes/btree-index.js 1.76 kB
./packages/db/dist/esm/indexes/lazy-index.js 1.25 kB
./packages/db/dist/esm/local-only.js 827 B
./packages/db/dist/esm/local-storage.js 2.02 kB
./packages/db/dist/esm/optimistic-action.js 294 B
./packages/db/dist/esm/proxy.js 3.87 kB
./packages/db/dist/esm/query/builder/functions.js 615 B
./packages/db/dist/esm/query/builder/index.js 3.93 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 938 B
./packages/db/dist/esm/query/compiler/evaluators.js 1.52 kB
./packages/db/dist/esm/query/compiler/expressions.js 631 B
./packages/db/dist/esm/query/compiler/group-by.js 2.08 kB
./packages/db/dist/esm/query/compiler/index.js 2.29 kB
./packages/db/dist/esm/query/compiler/joins.js 2.53 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.23 kB
./packages/db/dist/esm/query/compiler/select.js 1.28 kB
./packages/db/dist/esm/query/ir.js 508 B
./packages/db/dist/esm/query/live-query-collection.js 340 B
./packages/db/dist/esm/query/live/collection-config-builder.js 2.68 kB
./packages/db/dist/esm/query/live/collection-subscriber.js 1.91 kB
./packages/db/dist/esm/query/optimizer.js 3.1 kB
./packages/db/dist/esm/SortedMap.js 1.24 kB
./packages/db/dist/esm/transactions.js 3.03 kB
./packages/db/dist/esm/utils.js 943 B
./packages/db/dist/esm/utils/browser-polyfills.js 365 B
./packages/db/dist/esm/utils/btree.js 6.02 kB
./packages/db/dist/esm/utils/comparison.js 718 B
./packages/db/dist/esm/utils/index-optimization.js 1.62 kB

compressed-size-action::db-package-size

@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 1.44 kB

ℹ️ View Unchanged
Filename Size
./packages/react-db/dist/esm/index.js 152 B
./packages/react-db/dist/esm/useLiveQuery.js 1.29 kB

compressed-size-action::react-db-package-size

@samwillis
Copy link
Collaborator Author

stray, .only tricked me into thinking this was passing 😢 - closing so I can investigate and fix properly.

@samwillis samwillis closed this Sep 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Prevent triggering subscribeChanges when long-polling request finishes with up-to-date

1 participant