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]

Reply via email to