Skip to content

Conversation

@kristiankostecky
Copy link

@kristiankostecky kristiankostecky commented Oct 19, 2025

When calling reinit() to re-initialize the editor with updated options, changes to the toolbar option were being ignored. The toolbar was only created during the initial constructor call, making it impossible to dynamically enable/disable the toolbar after initialization.

Fixed by movin toolbar lifecycle management to _applyOptions()


Summary by cubic

Fixes the toolbar option being ignored on reinit(). The editor now creates or destroys the toolbar based on updated options so it can be enabled or disabled dynamically.

  • Bug Fixes
    • Handle toolbar lifecycle in _applyOptions: create when enabled, destroy when disabled.
    • Add _createToolbar() to encapsulate setup and event listeners for state updates.

panphora added a commit that referenced this pull request Nov 3, 2025
This commit addresses multiple community-reported issues and PRs:

- Fix PR #62: Toolbar option now properly respected in reinit() with memory leak protection
- Fix Issue #65: Code block alignment issues with white-space and font-family CSS
- Fix PR #64/Issue #63: Double-escaping of URLs with query parameters
- Fix Issue #52: Layer sync bug when switching between editor modes
- Fix Issue #54: Add instance setTheme() method for per-editor theming

New features:
- Add showNormalEditMode(), showPreviewMode(), showPlainTextarea() methods
- Migrate from CSS classes to data-mode attribute for cleaner state management
- Add comprehensive test coverage for links (9 new tests) and mode switching

Technical improvements:
- Toolbar lifecycle now managed through _applyOptions() with proper cleanup
- All 155 tests passing with requestAnimationFrame mocks for Node.js environment
- Updated TypeScript definitions for new methods and return types
@panphora
Copy link
Owner

panphora commented Nov 6, 2025

Thank you @kristiankostecky! This fix is excellent.

Applied in v2.0 with an additional enhancement: added proper cleanup of button event listeners in the destroy() method to prevent memory leaks during reinit cycles.

All 178 tests passing. Merged!

@panphora panphora closed this Nov 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants