B2: Mouseleave listener leak on every rebuild #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug
File:
web/components/ChartCard/usePlot.ts:63-67Every
rebuild()appends a new anonymousmouseleavelistener throughrequestAnimationFrame. Old listeners are never removed.Impact
Memory leak. After 10+ chart rebuilds (resize, data refresh, dep change),
mouseleavefires 10+ handlers on a single leave event.Code reference
Fix
Replace
addEventListener/removeEventListenerwith direct assignmentplot.over.onmouseleave = handlerto ensure single handler. Passdestroycallback ref to cleanup.