diff --git a/packages/node_modules/@node-red/editor-api/lib/editor/theme.js b/packages/node_modules/@node-red/editor-api/lib/editor/theme.js index d3f158a23..50b9b09d3 100644 --- a/packages/node_modules/@node-red/editor-api/lib/editor/theme.js +++ b/packages/node_modules/@node-red/editor-api/lib/editor/theme.js @@ -133,7 +133,7 @@ async function loadThemePlugin () { } // check and load page settings from theme if (themePlugin.page) { - if (themePlugin.page.favicon && !theme.page.favicon) { + if (themePlugin.page.favicon) { const result = serveFilesFromTheme( [themePlugin.page.favicon], themeApp, @@ -145,7 +145,7 @@ async function loadThemePlugin () { themeContext.page.favicon = result[0] } } - if (themePlugin.page.tabicon && themePlugin.page.tabicon.icon && !theme.page.tabicon) { + if (themePlugin.page.tabicon && themePlugin.page.tabicon.icon) { const result = serveFilesFromTheme( [themePlugin.page.tabicon.icon], themeApp, @@ -158,14 +158,13 @@ async function loadThemePlugin () { themeContext.page.tabicon.colour = themeContext.page.tabicon.colour || themeContext.page.tabicon.colour } } - // if the plugin has a title AND the users settings.js does NOT - if (themePlugin.page.title && !theme.page.title) { + if (themePlugin.page.title) { themeContext.page.title = themePlugin.page.title || themeContext.page.title } } // check and load header settings from theme if (themePlugin.header) { - if (themePlugin.header.image && !theme.header.image) { + if (themePlugin.header.image) { const result = serveFilesFromTheme( [themePlugin.header.image], themeApp, @@ -176,17 +175,23 @@ async function loadThemePlugin () { // update themeContext header image themeContext.header.image = result[0] } + } else if (themePlugin.header.image === false) { + themeContext.header.image = false } - // if the plugin has a title AND the users settings.js does NOT have a title - if (themePlugin.header.title && !theme.header.title) { - themeContext.header.title = themePlugin.header.title || themeContext.header.title + // if the plugin has a title + if (themePlugin.header.hasOwnProperty('title')) { + themeContext.header.title = themePlugin.header.title } - // if the plugin has a header url AND the users settings.js does NOT - if (themePlugin.header.url && !theme.header.url) { - themeContext.header.url = themePlugin.header.url || themeContext.header.url + // if the plugin has a header url + if (themePlugin.header.hasOwnProperty('url')) { + themeContext.header.url = themePlugin.header.url } } + if (themePlugin.menu) { + themeSettings.menu = Object.assign({}, themeSettings.menu, themePlugin.menu); + } + if (Array.isArray(themePlugin.palette?.theme)) { themeSettings.palette = themeSettings.palette || {}; themeSettings.palette.theme = themePlugin.palette.theme;