Skip to content

useWatchlistIdSet: scope subscription snapshot to watchlistKeys.root #514

@electather

Description

@electather

Part of epic #491. Review nit (B1) on apps/client/src/features/watchlist/hooks/use-watchlist-id-set.ts:23.

Problem

qc.getQueryCache().getAll().length counts every cached query app-wide. Any unrelated query (home feed, artwork, search) triggers re-render of all useWatchlistIdSet consumers → re-runs findAll + useMemo id-set computation even though watchlist data didn't change.

use-is-in-watchlist.ts already has correct pattern in this same PR.

Fix

() =>
  qc
    .getQueryCache()
    .findAll({ queryKey: watchlistKeys.root })
    .reduce((sum, q) => sum + q.state.dataUpdatedAt, 0),

Acceptance criteria

  • Snapshot scoped to watchlistKeys.root.
  • Snapshot tracks dataUpdatedAt sum so setQueryData + refetch + invalidate refresh advance it.
  • Test pins: unrelated query insertion does not trigger snapshot change.
  • vp check + vp test pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions