Skip to content

fix: resolve portal render timeout for nested floating content - #120

Merged
mathewtaylor merged 4 commits into
mainfrom
fix/portal-nested-render-timeout
Feb 10, 2026
Merged

fix: resolve portal render timeout for nested floating content#120
mathewtaylor merged 4 commits into
mainfrom
fix/portal-nested-render-timeout

Conversation

@mathewtaylor

@mathewtaylor mathewtaylor commented Feb 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes portal render timeout warnings when floating content is nested inside other portals (e.g., Combobox inside Dialog)
  • Moves NotifyPortalRendered before the _pendingRerender check in PortalHost.OnAfterRenderAsync, so portals rendered in the current cycle are notified immediately rather than being skipped by the early return

Root Cause

When a Combobox opens inside a Dialog, the nested FloatingPortal registers with PortalService. During PortalHost's re-render, the nested portal's OnParametersSet calls RefreshPortal(), setting _pendingRerender = true. The _pendingRerender check then returned early, skipping NotifyPortalRendered — forcing FloatingPortal to wait an extra render cycle that exceeded the 500ms timeout.

Close #119 #118

Move NotifyPortalRendered before the _pendingRerender check in
PortalHost.OnAfterRenderAsync. Nested portals (e.g., Combobox inside
Dialog) trigger RefreshPortal during PortalHost's render cycle, setting
_pendingRerender. The early return skipped NotifyPortalRendered, forcing
FloatingPortal to wait an extra render cycle and exceed its 500ms timeout.
PopoverContent gains Strategy and ZIndex parameters so Combobox and
MultiSelect dropdowns escape dialog stacking contexts. Updated demos
with nested portal regression tests and expanded changelog.
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.

bug: Dialog content rendering, Combobox, Select, etc.

1 participant