diff --git a/obsidian-reusables b/obsidian-reusables index 6d64559..fb58940 160000 --- a/obsidian-reusables +++ b/obsidian-reusables @@ -1 +1 @@ -Subproject commit 6d64559440fa42f765db2906d5f74af3eed0ada8 +Subproject commit fb589401f0ba76fab5c01bab8b63684ceeff3290 diff --git a/src/settings.ts b/src/settings.ts index 7fcf2a2..2e36106 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,5 +1,6 @@ import { App, PluginSettingTab, Setting } from "obsidian"; import Main from "./main"; +import { FolderSuggest } from "../obsidian-reusables/src/FolderSuggest"; export const DEFAULT_SETTINGS = { inbox: "Uncategorized", @@ -13,6 +14,8 @@ export class MainPluginSettingsTab extends PluginSettingTab { this.plugin = plugin; } + suggest?: FolderSuggest; + display() { const { containerEl } = this; containerEl.empty(); @@ -20,17 +23,19 @@ export class MainPluginSettingsTab extends PluginSettingTab { this.app.vault.getAllFolders().map((v) => [v.path, v.path]), ); options["/"] = "/"; + + const setInbox = async (v: string) => { + this.plugin.settings.inbox = v; + await this.plugin.saveSettings(); + }; + new Setting(containerEl) .setName("Inbox folder") .setDesc("Folder where notes without explicit ftags are stored") - .addDropdown((textArea) => { - textArea - .addOptions(options) - .setValue(this.plugin.settings.inbox) - .onChange(async (v) => { - this.plugin.settings.inbox = v; - await this.plugin.saveSettings(); - }); + .addSearch((search) => { + search.setValue(this.plugin.settings.inbox).onChange(setInbox); + this.suggest = new FolderSuggest(this.app, search.inputEl); + this.suggest.onSelect((v) => setInbox(v.path)); }); } }