Merge pull request #17 from JosueGalRe/main

feature: add string type theme property
This commit is contained in:
mauro 🤙 2024-09-16 22:51:37 +02:00 committed by GitHub
commit 64fa2931eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -146,6 +146,12 @@ var gZenThemeImporter = new (class {
for (const theme of Object.values(await this.getThemes())) {
const { preferences, areOldPreferences } = await this._getThemePreferences(theme);
if (areOldPreferences) {
continue;
}
const filteredPreferences = preferences.filter(({ type }) => type !== 'checkbox');
const sanitizedName = `theme-${theme.name?.replaceAll(/\s/g, '-')?.replaceAll(/[^A-z_-]+/g, '')}`;
if (!theme.enabled) {
@ -155,31 +161,51 @@ var gZenThemeImporter = new (class {
element.remove();
}
for (const { property } of filteredPreferences) {
const sanitizedProperty = property?.replaceAll(/\./g, '-');
if (document.querySelector(':root').style.hasProperty(`--${sanitizedProperty}`)) {
document.querySelector(':root').style.removeProperty(`--${sanitizedProperty}`);
}
}
continue;
}
if (areOldPreferences) {
continue;
}
const themePreferences = preferences.filter(({ type }) => type === 'dropdown');
for (const { property } of themePreferences) {
for (const { property, type } of preferences) {
const value = Services.prefs.getStringPref(property, '');
const sanitizedProperty = property?.replaceAll(/\./g, '-');
if (value !== '') {
let element = browser.document.getElementById(sanitizedName);
switch (type) {
case 'dropdown': {
if (value !== '') {
let element = browser.document.getElementById(sanitizedName);
if (!element) {
element = browser.document.createElement('div');
if (!element) {
element = browser.document.createElement('div');
element.style.display = 'none';
element.setAttribute('id', sanitizedName);
element.style.display = 'none';
element.setAttribute('id', sanitizedName);
browser.document.body.appendChild(element);
browser.document.body.appendChild(element);
}
element.setAttribute(sanitizedProperty, value);
}
break;
}
element.setAttribute(property?.replaceAll(/\./g, '-'), value);
case 'string': {
if (value === '') {
document.querySelector(':root').style.removeProperty(`--${sanitizedProperty}`);
} else {
document.querySelector(':root').style.setProperty(`--${sanitizedProperty}`, value);
}
break;
}
default: {
}
}
}
}