Vanessa 2022-11-16 10:09:44 +08:00
parent 9daeb34357
commit ed58765121
2 changed files with 12 additions and 41 deletions

View file

@ -485,22 +485,9 @@ export const bazaar = {
} }
if (bazaarType === "icons") { if (bazaarType === "icons") {
fetchPost("/api/setting/setAppearance", { fetchPost("/api/setting/setAppearance", Object.assign({}, window.siyuan.config.appearance, {
icon: packageName, icon: packageName,
mode: window.siyuan.config.appearance.mode, }), response => {
modeOS: window.siyuan.config.appearance.modeOS,
codeBlockThemeDark: window.siyuan.config.appearance.codeBlockThemeDark,
codeBlockThemeLight: window.siyuan.config.appearance.codeBlockThemeLight,
themeDark: window.siyuan.config.appearance.themeDark,
themeLight: window.siyuan.config.appearance.themeLight,
darkThemes: window.siyuan.config.appearance.darkThemes,
lightThemes: window.siyuan.config.appearance.lightThemes,
icons: window.siyuan.config.appearance.icons,
lang: window.siyuan.config.appearance.lang,
customCSS: window.siyuan.config.appearance.customCSS,
closeButtonBehavior: window.siyuan.config.appearance.closeButtonBehavior,
nativeEmoji: window.siyuan.config.appearance.nativeEmoji,
}, response => {
bazaar.element.querySelectorAll(`[data-name="${window.siyuan.config.appearance.icon}"]`).forEach(item => { bazaar.element.querySelectorAll(`[data-name="${window.siyuan.config.appearance.icon}"]`).forEach(item => {
item.parentElement.classList.remove("b3-card--current"); item.parentElement.classList.remove("b3-card--current");
const switchElement = item.querySelector('[data-type="switch"]'); const switchElement = item.querySelector('[data-type="switch"]');
@ -516,22 +503,12 @@ export const bazaar = {
appearance.onSetappearance(response.data); appearance.onSetappearance(response.data);
}); });
} else if (bazaarType === "themes") { } else if (bazaarType === "themes") {
fetchPost("/api/setting/setAppearance", { fetchPost("/api/setting/setAppearance", Object.assign({}, window.siyuan.config.appearance, {
icon: window.siyuan.config.appearance.icon,
mode, mode,
modeOS: false, modeOS: false,
codeBlockThemeDark: window.siyuan.config.appearance.codeBlockThemeDark,
codeBlockThemeLight: window.siyuan.config.appearance.codeBlockThemeLight,
themeDark: mode === 1 ? packageName : window.siyuan.config.appearance.themeDark, themeDark: mode === 1 ? packageName : window.siyuan.config.appearance.themeDark,
themeLight: mode === 0 ? packageName : window.siyuan.config.appearance.themeLight, themeLight: mode === 0 ? packageName : window.siyuan.config.appearance.themeLight,
darkThemes: window.siyuan.config.appearance.darkThemes, }), response => {
lightThemes: window.siyuan.config.appearance.lightThemes,
icons: window.siyuan.config.appearance.icons,
lang: window.siyuan.config.appearance.lang,
customCSS: window.siyuan.config.appearance.customCSS,
closeButtonBehavior: window.siyuan.config.appearance.closeButtonBehavior,
nativeEmoji: window.siyuan.config.appearance.nativeEmoji,
}, response => {
if ((mode !== window.siyuan.config.appearance.mode || if ((mode !== window.siyuan.config.appearance.mode ||
(mode === 1 && window.siyuan.config.appearance.themeDark !== packageName) || (mode === 1 && window.siyuan.config.appearance.themeDark !== packageName) ||
(mode === 0 && window.siyuan.config.appearance.themeLight !== packageName)) && (mode === 0 && window.siyuan.config.appearance.themeLight !== packageName)) &&

View file

@ -13,8 +13,9 @@ export const initAppearance = (modelElement: HTMLElement, modelMainElement: HTML
${window.siyuan.languages.appearance4} ${window.siyuan.languages.appearance4}
<div class="fn__hr"></div> <div class="fn__hr"></div>
<select class="b3-select fn__block" id="mode"> <select class="b3-select fn__block" id="mode">
<option value="0" ${window.siyuan.config.appearance.mode === 0 ? "selected" : ""}>${window.siyuan.languages.themeLight}</option> <option value="0" ${(window.siyuan.config.appearance.mode === 0 && !window.siyuan.config.appearance.modeOS) ? "selected" : ""}>${window.siyuan.languages.themeLight}</option>
<option value="1" ${window.siyuan.config.appearance.mode === 1 ? "selected" : ""}>${window.siyuan.languages.themeDark}</option> <option value="1" ${(window.siyuan.config.appearance.mode === 1 && !window.siyuan.config.appearance.modeOS) ? "selected" : ""}>${window.siyuan.languages.themeDark}</option>
<option value="2" ${window.siyuan.config.appearance.modeOS ? "selected" : ""}>${window.siyuan.languages.themeOS}</option>
</select> </select>
<div class="b3-label__text">${window.siyuan.languages.appearance5}</div> <div class="b3-label__text">${window.siyuan.languages.appearance5}</div>
</div> </div>
@ -62,22 +63,15 @@ export const initAppearance = (modelElement: HTMLElement, modelMainElement: HTML
}); });
modelMainElement.querySelectorAll("select").forEach(item => { modelMainElement.querySelectorAll("select").forEach(item => {
item.addEventListener("change", () => { item.addEventListener("change", () => {
fetchPost("/api/setting/setAppearance", { const modeElementValue = parseInt((modelMainElement.querySelector("#mode") as HTMLSelectElement).value);
fetchPost("/api/setting/setAppearance", Object.assign({}, window.siyuan.config.appearance, {
icon: (modelMainElement.querySelector("#icon") as HTMLSelectElement).value, icon: (modelMainElement.querySelector("#icon") as HTMLSelectElement).value,
mode: parseInt((modelMainElement.querySelector("#mode") as HTMLSelectElement).value), mode: modeElementValue === 2 ? window.siyuan.config.appearance.mode : modeElementValue,
modeOS: window.siyuan.config.appearance.modeOS, modeOS: modeElementValue === 2,
codeBlockThemeDark: window.siyuan.config.appearance.codeBlockThemeDark,
codeBlockThemeLight: window.siyuan.config.appearance.codeBlockThemeLight,
themeDark: (modelMainElement.querySelector("#themeDark") as HTMLSelectElement).value, themeDark: (modelMainElement.querySelector("#themeDark") as HTMLSelectElement).value,
themeLight: (modelMainElement.querySelector("#themeLight") as HTMLSelectElement).value, themeLight: (modelMainElement.querySelector("#themeLight") as HTMLSelectElement).value,
darkThemes: window.siyuan.config.appearance.darkThemes,
lightThemes: window.siyuan.config.appearance.lightThemes,
icons: window.siyuan.config.appearance.icons,
lang: (modelMainElement.querySelector("#lang") as HTMLSelectElement).value, lang: (modelMainElement.querySelector("#lang") as HTMLSelectElement).value,
customCSS: window.siyuan.config.appearance.customCSS, }), () => {
closeButtonBehavior: window.siyuan.config.appearance.closeButtonBehavior,
nativeEmoji: window.siyuan.config.appearance.nativeEmoji,
}, () => {
window.location.reload(); window.location.reload();
}); });
}); });