From 6f7d4544707769886a69b183a4affcba7e6ea061 Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Mon, 24 Oct 2022 22:44:43 +0200 Subject: [PATCH] Fixed #116, overall safer code in ModalVault --- src/components/ModalVault.svelte | 27 +++++++++++++++++---------- src/tools/utils.ts | 2 +- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/components/ModalVault.svelte b/src/components/ModalVault.svelte index 6aeadd1..4bf8ed7 100644 --- a/src/components/ModalVault.svelte +++ b/src/components/ModalVault.svelte @@ -17,8 +17,8 @@ export let modal: OmnisearchVaultModal let selectedIndex = 0 let historySearchIndex = 0 - let searchQuery: string - let previousQuery: string + let searchQuery: string | undefined + let previousQuery: string | undefined let resultNotes: ResultNote[] = [] let query: Query @@ -100,7 +100,9 @@ } function saveCurrentQuery() { - cacheManager.addToSearchHistory(searchQuery) + if (searchQuery) { + cacheManager.addToSearchHistory(searchQuery) + } } function openSearchResult(note: ResultNote, newPane = false) { @@ -115,13 +117,15 @@ async function createNoteAndCloseModal(opt?: { newLeaf: boolean }): Promise { - try { - await createNote(searchQuery, opt?.newLeaf) - } catch (e) { - new Notice((e as Error).message) - return + if (searchQuery) { + try { + await createNote(searchQuery, opt?.newLeaf) + } catch (e) { + new Notice((e as Error).message) + return + } + modal.close() } - modal.close() } function insertLink(): void { @@ -154,11 +158,14 @@ } function switchToInFileModal(): void { - if (selectedNote.path.endsWith('.pdf')) { + // Do nothing if the selectedNote is a PDF + if (selectedNote?.path.endsWith('.pdf')) { return } + saveCurrentQuery() modal.close() + if (selectedNote) { // Open in-file modal for selected search result const file = app.vault.getAbstractFileByPath(selectedNote.path) diff --git a/src/tools/utils.ts b/src/tools/utils.ts index b192bf3..6207d6f 100644 --- a/src/tools/utils.ts +++ b/src/tools/utils.ts @@ -192,7 +192,7 @@ export function getPlaintextExtensions(): string[] { export function getExtension(path: string): string { const split = path.split('.') - return split[split.length - 1] + return split[split.length - 1] ?? '' } export function makeMD5(data: BinaryLike): string {