Files
Artstr-Studio/src
thePR0M3TH3AN b829935103 fix: recreate <defs> in rebuildClipDefs when it's missing
Adam hit a hard crash every time he clicked a layout tab on the
deployed site:

  Uncaught TypeError: Cannot set properties of null (setting
  'innerHTML') at rebuildClipDefs (16403) → render (11689) →
  applyLayout (28513)

rebuildClipDefs() does defs.innerHTML = '' on an element found
via defsRoot.querySelector('defs'). If the SVG #globalClipDefs
container exists but its inner <defs> child has been removed (or
an early DOM-hook / browser extension injected the SVG without a
<defs> child), the query returns null and the assignment throws.
Because rebuildClipDefs is the first thing render() calls, the
crash aborts the entire render — body classes don't swap, the
canvas doesn't redraw, the layout panel doesn't update. The
top-level tab visually toggles but everything downstream stays
frozen. Exactly the "canvas stuck" report.

Guard the lookup: if no <defs> child exists, re-create one and
append it to the container, then proceed with the rebuild. The
ensureGlobalClipDefs() helper already creates a <defs> on first
call; this fix handles the rarer case where the container exists
in a malformed state.
2026-06-02 14:38:42 -04:00
..
2026-05-26 16:13:06 -04:00
2026-05-20 22:06:50 -04:00
2026-05-26 16:13:06 -04:00