dragonish_obsidian-heading-.../components/setting.ts
dragonish 29c9403abc
tweak(setting): optimize the settings page
To adapt to the new style of Obsidian 1.11.
2026-01-14 20:38:28 +08:00

44 lines
794 B
TypeScript

import { Setting } from "obsidian";
export class SettingDisplayManager {
constructor(
private items: Array<Setting | SettingDisplayManager> = [],
private state: boolean = true
) {}
add(item: Setting | SettingDisplayManager) {
this.items.push(item);
}
hide() {
this.state = false;
this._hide();
}
show() {
this.state = true;
this._show();
}
private _hide() {
this.items.forEach((item) => {
if (item instanceof Setting) {
item.settingEl.hide();
} else {
item._hide();
}
});
}
private _show() {
if (this.state) {
this.items.forEach((item) => {
if (item instanceof Setting) {
item.settingEl.show();
} else {
item._show();
}
});
}
}
}