From 4e1abd1b729073e68b5f159ea567f183dc1bfa12 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Wed, 11 Jan 2023 13:43:43 -0300 Subject: [PATCH] Disable update button while indexing vault in plugin settings --- src/interface/obsidian/src/settings.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/interface/obsidian/src/settings.ts b/src/interface/obsidian/src/settings.ts index f2ce5a56..e3486c81 100644 --- a/src/interface/obsidian/src/settings.ts +++ b/src/interface/obsidian/src/settings.ts @@ -49,15 +49,26 @@ export class KhojSettingTab extends PluginSettingTab { this.plugin.settings.resultsCount = parseInt(value); await this.plugin.saveSettings(); })); - new Setting(containerEl) + let indexVaultSetting = new Setting(containerEl); + indexVaultSetting .setName('Index Vault') .setDesc('Manually force Khoj to re-index your Obsidian Vault') .addButton(button => button .setButtonText('Update') .setCta() .onClick(async () => { + // Disable button while updating index + button.setButtonText('Updating...'); + button.removeCta() + indexVaultSetting = indexVaultSetting.setDisabled(true); + await request(`${this.plugin.settings.khojUrl}/api/update?t=markdown&force=true`) - .then(() => new Notice('✅ Updated Khoj index.')) + .then(() => new Notice('✅ Updated Khoj index.')); + + // Re-enable button once index is updated + button.setButtonText('Update'); + button.setCta() + indexVaultSetting = indexVaultSetting.setDisabled(false); }) ); }