penpot/frontend
Andrey Antukh aed2f8a8f8
🐛 Fix removeChild errors from unmount race conditions (#8927)
Guard imperative DOM operations (removeChild, RAF callbacks) against
race conditions where React has already unmounted the target nodes.

- assets/common.cljs: add dom/child? guard before removeChild in RAF
- dynamic_modifiers.cljs: capture RAF IDs and cancel them on cleanup;
  add null guards for DOM nodes that may no longer exist
- hooks.cljs: guard portal container removal with dom/child? check
- errors.cljs: extract is-ignorable-exception? to a top-level defn
  and add NotFoundError/removeChild to ignorable exceptions, since
  these are caused by browser extensions modifying React-managed DOM
- Add unit tests for is-ignorable-exception? predicate

Signed-off-by: Andrey Antukh <niwi@niwi.nz>
2026-04-21 17:31:05 +02:00
..
2026-01-22 13:55:41 +01:00
2026-02-26 12:19:15 +01:00
2026-03-26 14:12:11 +01:00
2025-12-23 13:10:58 +01:00
2026-04-01 11:10:28 +02:00
2026-04-01 11:10:28 +02:00
2026-02-10 08:29:24 +01:00
2025-11-05 17:15:19 +01:00