mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-03-29 13:15:17 +00:00
- New chunking algorithm `V3: Fine deduplication` has been added, and will be recommended after updates. - New language `ko` (Korean) has been added. - Chinese (Simplified) translation has been updated. ### Fixed - Numeric settings are now never lost the focus during the value changing. ### Improved - All translations have rewritten into YAML format, to easier manage and contribution. - Doctor recommendations have now shown in the user-friendly notation. ### Refactored - Never ending `ObsidianLiveSyncSettingTag.ts` finally had separated into each pane's file. - Some commented-out codes have been removed.
78 lines
3.2 KiB
TypeScript
78 lines
3.2 KiB
TypeScript
import { LiveSyncSetting as Setting } from "./LiveSyncSetting.ts";
|
|
import { EVENT_REQUEST_OPEN_PLUGIN_SYNC_DIALOG, eventHub } from "../../../common/events.ts";
|
|
import type { ObsidianLiveSyncSettingTab } from "./ObsidianLiveSyncSettingTab.ts";
|
|
import type { PageFunctions } from "./SettingPane.ts";
|
|
import { enableOnly, visibleOnly } from "./SettingPane.ts";
|
|
export function paneCustomisationSync(
|
|
this: ObsidianLiveSyncSettingTab,
|
|
paneEl: HTMLElement,
|
|
{ addPanel }: PageFunctions
|
|
): void {
|
|
// With great respect, thank you TfTHacker!
|
|
// Refer: https://github.com/TfTHacker/obsidian42-brat/blob/main/src/features/BetaPlugins.ts
|
|
void addPanel(paneEl, "Customization Sync").then((paneEl) => {
|
|
const enableOnlyOnPluginSyncIsNotEnabled = enableOnly(() => this.isConfiguredAs("usePluginSync", false));
|
|
const visibleOnlyOnPluginSyncEnabled = visibleOnly(() => this.isConfiguredAs("usePluginSync", true));
|
|
|
|
this.createEl(
|
|
paneEl,
|
|
"div",
|
|
{
|
|
text: "Please set device name to identify this device. This name should be unique among your devices. While not configured, we cannot enable this feature.",
|
|
cls: "op-warn",
|
|
},
|
|
(c) => {},
|
|
visibleOnly(() => this.isConfiguredAs("deviceAndVaultName", ""))
|
|
);
|
|
this.createEl(
|
|
paneEl,
|
|
"div",
|
|
{
|
|
text: "We cannot change the device name while this feature is enabled. Please disable this feature to change the device name.",
|
|
cls: "op-warn-info",
|
|
},
|
|
(c) => {},
|
|
visibleOnly(() => this.isConfiguredAs("usePluginSync", true))
|
|
);
|
|
|
|
new Setting(paneEl).autoWireText("deviceAndVaultName", {
|
|
placeHolder: "desktop",
|
|
onUpdate: enableOnlyOnPluginSyncIsNotEnabled,
|
|
});
|
|
|
|
new Setting(paneEl).autoWireToggle("usePluginSyncV2");
|
|
|
|
new Setting(paneEl).autoWireToggle("usePluginSync", {
|
|
onUpdate: enableOnly(() => !this.isConfiguredAs("deviceAndVaultName", "")),
|
|
});
|
|
|
|
new Setting(paneEl).autoWireToggle("autoSweepPlugins", {
|
|
onUpdate: visibleOnlyOnPluginSyncEnabled,
|
|
});
|
|
|
|
new Setting(paneEl).autoWireToggle("autoSweepPluginsPeriodic", {
|
|
onUpdate: visibleOnly(
|
|
() => this.isConfiguredAs("usePluginSync", true) && this.isConfiguredAs("autoSweepPlugins", true)
|
|
),
|
|
});
|
|
new Setting(paneEl).autoWireToggle("notifyPluginOrSettingUpdated", {
|
|
onUpdate: visibleOnlyOnPluginSyncEnabled,
|
|
});
|
|
|
|
new Setting(paneEl)
|
|
.setName("Open")
|
|
.setDesc("Open the dialog")
|
|
.addButton((button) => {
|
|
button
|
|
.setButtonText("Open")
|
|
.setDisabled(false)
|
|
.onClick(() => {
|
|
// this.plugin.getAddOn<ConfigSync>(ConfigSync.name)?.showPluginSyncModal();
|
|
// this.plugin.addOnConfigSync.showPluginSyncModal();
|
|
eventHub.emitEvent(EVENT_REQUEST_OPEN_PLUGIN_SYNC_DIALOG);
|
|
});
|
|
})
|
|
.addOnUpdate(visibleOnlyOnPluginSyncEnabled);
|
|
});
|
|
}
|