Allow theme plugin to override settings and add menu options

pull/5580/head
Nick O'Leary 2026-03-23 11:08:41 +00:00
parent 254bbe3c02
commit f01287c642
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
1 changed files with 12 additions and 9 deletions

View File

@ -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,
@ -177,16 +176,20 @@ async function loadThemePlugin () {
themeContext.header.image = result[0]
}
}
// if the plugin has a title AND the users settings.js does NOT have a title
if (themePlugin.header.title && !theme.header.title) {
// if the plugin has a title
if (themePlugin.header.title) {
themeContext.header.title = themePlugin.header.title || themeContext.header.title
}
// if the plugin has a header url AND the users settings.js does NOT
if (themePlugin.header.url && !theme.header.url) {
// if the plugin has a header url
if (themePlugin.header.url) {
themeContext.header.url = themePlugin.header.url || themeContext.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;