File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11<script lang =" ts" >
2+ import { onDestroy } from ' svelte' ;
23 import { fly } from ' svelte/transition' ;
34 import { cubicOut } from ' svelte/easing' ;
45 import { untrack } from ' svelte' ;
115116 }
116117 });
117118
119+ // Track active resize cleanup for component destroy
120+ let activeCleanup: (() => void ) | null = null ;
121+
118122 function startResize(edge : ' left' | ' right' | ' top' | ' bottom' ) {
119123 return (event : MouseEvent ) => {
120124 event .preventDefault ();
146150 }
147151 }
148152
149- function onMouseUp() {
150- isResizing = false ;
151- resizeEdge = null ;
153+ function cleanup() {
152154 document .removeEventListener (' mousemove' , onMouseMove );
153155 document .removeEventListener (' mouseup' , onMouseUp );
154156 document .body .classList .remove (' resizing-ew' , ' resizing-ns' );
157+ activeCleanup = null ;
155158 }
156159
160+ function onMouseUp() {
161+ isResizing = false ;
162+ resizeEdge = null ;
163+ cleanup ();
164+ }
165+
166+ activeCleanup = cleanup ;
157167 document .addEventListener (' mousemove' , onMouseMove );
158168 document .addEventListener (' mouseup' , onMouseUp );
159169 document .body .classList .add ((edge === ' left' || edge === ' right' ) ? ' resizing-ew' : ' resizing-ns' );
160170 };
161171 }
172+
173+ onDestroy (() => {
174+ activeCleanup ?.();
175+ });
162176 </script >
163177
164178<!-- svelte-ignore a11y_no_static_element_interactions, a11y_no_noninteractive_element_interactions -->
You can’t perform that action at this time.
0 commit comments