mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 19:28:12 +00:00
The previous fix (80b64c440c) only addressed portal-on-document* but there were 6 additional components that portaled directly to document.body, causing the same race condition when React attempted to remove a node that had already been detached during concurrent state updates (e.g. navigating away while a context menu is open). Apply the dedicated-container pattern consistently to all portal sites: modal, context menus, combobox dropdown, theme selector, and tooltip. Each component now creates a dedicated <div> container appended to body on mount and removed on cleanup, giving React an exclusive containerInfo for each portal instance. Signed-off-by: Andrey Antukh <niwi@niwi.nz>