sadpandajoe opened a new pull request, #41351: URL: https://github.com/apache/superset/pull/41351
### SUMMARY When a horizontal filter bar has enough native filters to overflow into the "More filters" dropdown, applying a cross-filter (which prepends a chip to the bar) could make the overflowed native filters disappear from both the bar and the dropdown, while the "More filters" button itself also vanished, leaving the hidden filters unreachable. Clearing the cross-filter restored them. The failure depends on the number of configured filters, not screen resolution. Root cause: on an item-set change `DropdownContainer` resets its positional overflow index and re-measures; if that measurement catches a transient mid-reflow layout it can settle a "nothing overflows" verdict that never self-corrects (the recalculation effect's dependencies don't change again). Because the trigger's visibility is derived solely from the overflow count, that one bad verdict both strands the surplus filters in the clipped bar and removes the trigger to reach them. Fix: treat a post-item-change "nothing overflows" read as provisional and run a single `requestAnimationFrame` confirmation pass that re-measures once the browser has reflowed, keeping the trigger mounted across the confirmation window. The confirmation is armed on every item-set change (covering a fit→overflow transition, not only the already-overflowing case) and is versioned/cancelled so a superseded frame from a rapid second change cannot clobber the newer state. This extends the intent of #38193 (which guarded only the transient reset window) to the settled case, in the same overflow/button-visibility area as #28060. ### BEFORE/AFTER Behavioral overflow bug, no visual redesign. Covered by automated tests rather than screenshots; see Testing Instructions. ### TESTING INSTRUCTIONS - `cd superset-frontend && npm run test -- DropdownContainer.overflow` - The new `DropdownContainer.overflow.test.tsx` drives the real overflow recalculation (mocking only the container width and per-element geometry) and covers: clean re-measurement after a prepended chip, the transient-latch regression, the fit→overflow transition, over-correction (a genuine fit drops the trigger), and re-entrant item-set changes. - Manual: on a dashboard with enough native filters to show "More filters" in the horizontal filter bar, apply a cross-filter from a chart; the overflowed native filters and the "More filters" button must remain present and reachable. ### ADDITIONAL INFORMATION - [x] Changes UI - [ ] Includes DB Migration - [ ] Introduces new feature or API - [ ] Removes existing feature or API -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
