enable swtiching built-in themes on-the-fly

This commit is contained in:
Vladimir Mandic
2024-01-10 11:58:09 -05:00
parent 204853afea
commit d73001f1a9
14 changed files with 43 additions and 18 deletions
+6 -3
View File
@@ -9,12 +9,13 @@ const monitoredOpts = [
const AppyOpts = [
{ compact_view: (val) => toggleCompact(val) },
{ gradio_theme: (val, old) => setTheme(val, old) },
{ font_size: (val) => setFontSize(val) },
];
async function updateOpts(json_string) {
const settings_data = JSON.parse(json_string);
opts = settings_data.values;
const new_opts = settings_data.values;
opts_metadata = settings_data.metadata;
for (const op of monitoredOpts) {
@@ -22,16 +23,18 @@ async function updateOpts(json_string) {
const callback = op[key];
if (opts[key] && opts[key] !== settings_data.values[key]) {
log('updateOpts', key, opts[key], settings_data.values[key]);
if (callback) callback(opts[key]);
if (callback) callback(new_opts[key], opts[key]);
}
}
for (const op of AppyOpts) {
const key = Object.keys(op)[0];
const callback = op[key];
if (callback) callback(settings_data.values[key]);
if (callback) callback(new_opts[key], opts[key]);
}
opts = new_opts;
Object.entries(opts_metadata).forEach(([opt, meta]) => {
if (!opts_tabs[meta.tab_name]) opts_tabs[meta.tab_name] = {};
if (!opts_tabs[meta.tab_name].unsaved_keys) opts_tabs[meta.tab_name].unsaved_keys = new Set();