mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-04-05 08:35:19 +00:00
58 lines
2.6 KiB
TypeScript
58 lines
2.6 KiB
TypeScript
import { $msg, $t } from "../../../lib/src/common/i18n.ts";
|
|
import { SUPPORTED_I18N_LANGS, type I18N_LANGS } from "../../../lib/src/common/rosetta.ts";
|
|
import { LiveSyncSetting as Setting } from "./LiveSyncSetting.ts";
|
|
import type { ObsidianLiveSyncSettingTab } from "./ObsidianLiveSyncSettingTab.ts";
|
|
import type { PageFunctions } from "./SettingPane.ts";
|
|
import { visibleOnly } from "./SettingPane.ts";
|
|
import { EVENT_ON_UNRESOLVED_ERROR, eventHub } from "@/common/events.ts";
|
|
import { NetworkWarningStyles } from "@lib/common/models/setting.const.ts";
|
|
export function paneGeneral(
|
|
this: ObsidianLiveSyncSettingTab,
|
|
paneEl: HTMLElement,
|
|
{ addPanel, addPane }: PageFunctions
|
|
): void {
|
|
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleAppearance")).then((paneEl) => {
|
|
const languages = Object.fromEntries([
|
|
// ["", $msg("obsidianLiveSyncSettingTab.defaultLanguage")],
|
|
...SUPPORTED_I18N_LANGS.map((e) => [e, $t(`lang-${e}`)]),
|
|
]) as Record<I18N_LANGS, string>;
|
|
new Setting(paneEl).autoWireDropDown("displayLanguage", {
|
|
options: languages,
|
|
});
|
|
this.addOnSaved("displayLanguage", () => this.display());
|
|
new Setting(paneEl).autoWireToggle("showStatusOnEditor");
|
|
new Setting(paneEl).autoWireToggle("showOnlyIconsOnEditor", {
|
|
onUpdate: visibleOnly(() => this.isConfiguredAs("showStatusOnEditor", true)),
|
|
});
|
|
new Setting(paneEl).autoWireToggle("showStatusOnStatusbar");
|
|
new Setting(paneEl).autoWireToggle("hideFileWarningNotice");
|
|
new Setting(paneEl).autoWireDropDown("networkWarningStyle", {
|
|
options: {
|
|
[NetworkWarningStyles.BANNER]: "Show full banner",
|
|
[NetworkWarningStyles.ICON]: "Show icon only",
|
|
[NetworkWarningStyles.HIDDEN]: "Hide completely",
|
|
},
|
|
});
|
|
this.addOnSaved("networkWarningStyle", () => {
|
|
eventHub.emitEvent(EVENT_ON_UNRESOLVED_ERROR);
|
|
});
|
|
});
|
|
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleLogging")).then((paneEl) => {
|
|
paneEl.addClass("wizardHidden");
|
|
|
|
new Setting(paneEl).autoWireToggle("lessInformationInLog");
|
|
|
|
new Setting(paneEl).autoWireToggle("showVerboseLog", {
|
|
onUpdate: visibleOnly(() => this.isConfiguredAs("lessInformationInLog", false)),
|
|
});
|
|
});
|
|
new Setting(paneEl).setClass("wizardOnly").addButton((button) =>
|
|
button
|
|
.setButtonText($msg("obsidianLiveSyncSettingTab.btnNext"))
|
|
.setCta()
|
|
.onClick(() => {
|
|
this.changeDisplay("0");
|
|
})
|
|
);
|
|
}
|