From 0768009a33d669e6ebb30fb8b669e5bf32a8c3aa Mon Sep 17 00:00:00 2001 From: david ruty Date: Wed, 17 Apr 2024 19:42:51 +0200 Subject: [PATCH] theme toolbar's handlers overwritten fix --- packages/quill/src/core/quill.ts | 43 ++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/packages/quill/src/core/quill.ts b/packages/quill/src/core/quill.ts index b88a4f5fa4..c93c465d48 100644 --- a/packages/quill/src/core/quill.ts +++ b/packages/quill/src/core/quill.ts @@ -784,50 +784,55 @@ function expandConfig( if (!container) { throw new Error('Invalid Quill container'); } + + const userOptions={...options}; const shouldUseDefaultTheme = - !options.theme || options.theme === Quill.DEFAULTS.theme; + !userOptions.theme || userOptions.theme === Quill.DEFAULTS.theme; const theme = shouldUseDefaultTheme ? Theme - : Quill.import(`themes/${options.theme}`); + : Quill.import(`themes/${userOptions.theme}`); if (!theme) { - throw new Error(`Invalid theme ${options.theme}. Did you register it?`); + throw new Error(`Invalid theme ${userOptions.theme}. Did you register it?`); } const { modules: quillModuleDefaults, ...quillDefaults } = Quill.DEFAULTS; const { modules: themeModuleDefaults, ...themeDefaults } = theme.DEFAULTS; - const modules: ExpandedQuillOptions['modules'] = merge( - {}, - expandModuleConfig(quillModuleDefaults), - expandModuleConfig(themeModuleDefaults), - expandModuleConfig(options.modules), - ); // Special case toolbar shorthand + if ( - modules != null && - modules.toolbar && - modules.toolbar.constructor !== Object + userOptions.modules != null && + userOptions.modules.toolbar && + userOptions.modules.toolbar.constructor !== Object ) { - modules.toolbar = { - container: modules.toolbar, + userOptions.modules.toolbar = { + container: userOptions.modules.toolbar }; } + const modules: ExpandedQuillOptions['modules'] = merge( + {}, + expandModuleConfig(quillModuleDefaults), + expandModuleConfig(themeModuleDefaults), + expandModuleConfig(userOptions.modules), + ); + + const config = { ...quillDefaults, ...omitUndefinedValuesFromOptions(themeDefaults), - ...omitUndefinedValuesFromOptions(options), + ...omitUndefinedValuesFromOptions(userOptions), }; - let registry = options.registry; + let registry = userOptions.registry; if (registry) { - if (options.formats) { + if (userOptions.formats) { debug.warn('Ignoring "formats" option because "registry" is specified'); } } else { - registry = options.formats - ? createRegistryWithFormats(options.formats, config.registry, debug) + registry = userOptions.formats + ? createRegistryWithFormats(userOptions.formats, config.registry, debug) : config.registry; }