Skip to content

fix: canvas filters.pinned and filters.required chips missing on load - #9990

Open
nishantmonu51 wants to merge 1 commit into
mainfrom
nishant/fix-canvas-pinned-filters-late-config
Open

nishantmonu51 wants to merge 1 commit into
mainfrom
nishant/fix-canvas-pinned-filters-late-config

Conversation

@nishantmonu51

Copy link
Copy Markdown
Collaborator
  • Since fix: delayed metrics spec load not retaining expression filters #9974 a canvas applies its metrics views and then its YAML config, both from the same ResolveCanvas response. When the resource list has already landed, applying the names marks the specs ready synchronously, which replays the queued URL params and builds the chips before the pinned and required filters are known. Nothing re-parses afterwards, so the chips never show. Every canvas with filters.pinned or filters.required on v0.90.3 is affected.
  • YAMLConfigProvider now emits an update event and ExpressionFilterManager adds the missing required and pinned chips when it fires (JoinerFilterManager.addRequiredAndPinnedFilters). Chips that already exist are left untouched, so spec refreshes do not churn the filter bar.
  • Adds unit tests for the late config, a repeated update and a pinned field no metrics view defines. The first fails on main with the exact symptom.

Steps to reproduce:

  1. In Rill Cloud (v0.90.3), open a canvas that has filters: pinned: [...] or required: [...] by navigating from the project page, so the resource list is already cached.
  2. The filter bar reads "No filters selected" and shows no pinned chips, while the add-filter menu still lists the dimensions.
  3. Add any filter from the menu and press the browser's Back button: the chips appear, because the navigation parses the URL params again with the config present.

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

Since #9974 a canvas applies its metrics views and then its YAML config,
both from the same ResolveCanvas response. When the resource list has
already landed, applying the names marks the specs ready synchronously,
which replays the queued URL params and builds the chips before the
pinned and required filters are known. Nothing re-parsed afterwards, so
the chips never showed.

YAMLConfigProvider now emits an update event and ExpressionFilterManager
adds the missing required and pinned chips when it fires. Chips that
already exist are left untouched.

This branch has not been deployed

No deployments
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.

2 participants