This repository was archived by the owner on Jan 30, 2026. It is now read-only.
Merged
Conversation
This commit refines the cleanup process in the SuperDocTemplateBuilder component by ensuring that the instance is properly referenced before calling the destroy method. It also resets additional references to prevent memory leaks.
SD-543 Fix memory leak: clear trigger refs on unmount
SummaryEnsure cleanup refs are cleared on unmount to prevent memory leaks when component is destroyed during active menu interaction Tasks
NotesProblem: When component unmounts while menu is open or trigger is active, refs hold closures that reference editor/DOM that no longer exist Current code (src/index.tsx ~line 400): return () => {
if (superdocRef.current) {
if (typeof superdocRef.current.destroy === 'function') {
superdocRef.current.destroy();
}
superdocRef.current = null;
}
};Missing: Clear Fix: return () => {
// Clear trigger refs
triggerCleanupRef.current = null;
menuTriggerFromRef.current = null;
// Destroy editor
if (superdocRef.current) {
if (typeof superdocRef.current.destroy === 'function') {
superdocRef.current.destroy();
}
superdocRef.current = null;
}
};Verification: Mount component → type trigger → unmount → verify no memory leaks in Chrome DevTools |
Contributor
|
🎉 This PR is included in version 0.2.0-next.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
superdoc-bot bot
pushed a commit
that referenced
this pull request
Nov 13, 2025
# [0.2.0](v0.1.0...v0.2.0) (2025-11-13) ### Bug Fixes * force pre-release ([f752754](f752754)) * improve cleanup logic ([#11](#11)) ([01f0bf9](01f0bf9)) * update field ID type and improve field handling ([#14](#14)) ([e0e6d31](e0e6d31)) * update field IDs and categories in README and App component ([61a473d](61a473d)) ### Features * add import functionality for .docx files in the template builder ([#15](#15)) ([42faccc](42faccc)) * enhance exportTemplate functionality with configurable options ([#17](#17)) ([7e2a03d](7e2a03d)) * enhance field handling with mode support in template builder ([#16](#16)) ([d46ab5d](d46ab5d)) * implement viewport clamping for menu positioning in SuperDocTemplateBuilder ([#10](#10)) ([09e82ee](09e82ee))
Contributor
|
🎉 This PR is included in version 0.2.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
caio-pizzol
pushed a commit
that referenced
this pull request
Jan 30, 2026
* chore(release): 0.2.0 [skip ci] # [0.2.0](v0.1.0...v0.2.0) (2025-11-13) ### Bug Fixes * force pre-release ([f752754](f752754)) * improve cleanup logic ([#11](#11)) ([01f0bf9](01f0bf9)) * update field ID type and improve field handling ([#14](#14)) ([e0e6d31](e0e6d31)) * update field IDs and categories in README and App component ([61a473d](61a473d)) ### Features * add import functionality for .docx files in the template builder ([#15](#15)) ([42faccc](42faccc)) * enhance exportTemplate functionality with configurable options ([#17](#17)) ([7e2a03d](7e2a03d)) * enhance field handling with mode support in template builder ([#16](#16)) ([d46ab5d](d46ab5d)) * implement viewport clamping for menu positioning in SuperDocTemplateBuilder ([#10](#10)) ([09e82ee](09e82ee)) * chore(release): 0.3.0 [skip ci] # [0.3.0](v0.2.0...v0.3.0) (2025-11-21) ### Bug Fixes * add deduplication for React dependencies in Vite config and clean up package.json ([dc17f23](dc17f23)) * add missing deployment ID in GitHub Pages workflow ([e350b3b](e350b3b)) * update SuperDoc initialization with document mode and enhance Vite config external dependencies ([9e0989a](9e0989a)) ### Features * add getSuperDoc method for accessing SuperDoc API ([#18](#18)) ([ccda4e0](ccda4e0)) * enhance field management with grouping and improved UI ([#19](#19)) ([a64e8b8](a64e8b8)) * chore(release): 0.4.0 [skip ci] # [0.4.0](v0.3.0...v0.4.0) (2025-12-11) ### Bug Fixes * disable comments module + sd update ([#22](#22)) ([79d24c7](79d24c7)) * remove dedupe + add dev react runtime ([#20](#20)) ([830b009](830b009)) ### Features * onexport callback ([#21](#21)) ([c85abc1](c85abc1)) * chore(release): 0.5.0 [skip ci] # [0.5.0](v0.4.0...v0.5.0) (2025-12-16) ### Bug Fixes * demo app ([461c620](461c620)) * demo with dedupe ([75c4184](75c4184)) ### Features * add mode to field def + move from metadata ([4141fda](4141fda)) * chore(release): 1.0.0 [skip ci] # [1.0.0](v0.5.0...v1.0.0) (2026-01-16) * Breaking change: migrate template builder to SuperDoc v1 ([#24](#24)) ([78af7cc](78af7cc)) ### BREAKING CHANGES * - Upgraded `superdoc` to version `1.5.0-next.7` in both `package.json` and `pnpm-lock.yaml`. - Updated React and React DOM versions to `19.2.3`. - Enhanced performance by using `useMemo` for toolbar settings and scheduling callbacks with `queueMicrotask` to avoid blocking rendering. - Various dependency updates in `pnpm-lock.yaml` for improved compatibility and security. * chore: update superdoc version to 1.5.0 in package.json and pnpm-lock.yaml * refactor: streamline field update callbacks in SuperDocTemplateBuilder --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: Caio Pizzol <caiopizzol@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit refines the cleanup process in the SuperDocTemplateBuilder component by ensuring that the instance is properly referenced before calling the destroy method. It also resets additional references to prevent memory leaks.