From 330df899a06dae974f9cad0b515cd131cbbe1801 Mon Sep 17 00:00:00 2001 From: Simon Cambier Date: Fri, 22 Apr 2022 22:29:52 +0200 Subject: [PATCH] Refactored events to use a small global event bus --- package.json | 3 ++- src/CmpInput.svelte | 31 ------------------------------- src/CmpModalInFile.svelte | 25 ++++++++++++++++--------- src/CmpModalVault.svelte | 19 ++++++++----------- src/event-bus.ts | 36 ++++++++++++++++++++++++++++++++++++ src/globals.ts | 6 ++++++ src/modal.ts | 35 ++++++++++++++++++++++++++++++++++- src/search.ts | 1 - src/stores.ts | 2 -- src/utils.ts | 2 +- tsconfig.json | 2 +- 11 files changed, 104 insertions(+), 58 deletions(-) create mode 100644 src/event-bus.ts delete mode 100644 src/stores.ts diff --git a/package.json b/package.json index 5d1042c..ccdffed 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "dev": "node esbuild.config.mjs", "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", - "version": "node version-bump.mjs && git add manifest.json versions.json" + "version": "node version-bump.mjs && git add manifest.json versions.json", + "lint": "eslint . --ext .ts --fix --ignore-path .gitignore" }, "keywords": [], "author": "", diff --git a/src/CmpInput.svelte b/src/CmpInput.svelte index f7520bc..35c0f97 100644 --- a/src/CmpInput.svelte +++ b/src/CmpInput.svelte @@ -17,43 +17,12 @@ onMount(async () => { const debouncedOnInput = debounce(() => { dispatch("input", value) }, 100) - -function moveNoteSelection(ev: KeyboardEvent): void { - switch (ev.key) { - case "ArrowDown": - ev.preventDefault() - dispatch("arrow-down") - break - case "ArrowUp": - ev.preventDefault() - dispatch("arrow-up") - break - - case "Enter": - ev.preventDefault() - if (ev.ctrlKey || ev.metaKey) { - // Open in a new pane - dispatch("ctrl-enter") - } else if (ev.shiftKey) { - // Create a new note - dispatch("shift-enter") - } else if (ev.altKey) { - // Expand in-note results - dispatch("alt-enter") - } else { - // Open in current pane - dispatch("enter") - } - break - } -} import CmpInput from "./CmpInput.svelte" import CmpResultInFile from "./CmpResultInFile.svelte" -import { excerptAfter, type ResultNote, type SearchMatch } from "./globals" +import { + eventBus, + excerptAfter, + type ResultNote, + type SearchMatch, +} from "./globals" import { loopIndex } from "./utils" -import { onMount, tick } from "svelte" +import { onDestroy, onMount, tick } from "svelte" import { MarkdownView } from "obsidian" import { getSuggestions } from "./search" import type { ModalInFile, ModalVault } from "./modal" @@ -23,6 +28,14 @@ let note: ResultNote | null = null onMount(() => { searchQuery = lastSearch + eventBus.disable("vault") + eventBus.on("infile", "enter", openSelection) + eventBus.on("infile", "arrow-up", () => moveIndex(-1)) + eventBus.on("infile", "arrow-down", () => moveIndex(1)) +}) + +onDestroy(() => { + eventBus.enable("vaut") }) $: { @@ -109,13 +122,7 @@ async function openSelection(): Promise { - (searchQuery = e.detail)} - on:enter={openSelection} - on:arrow-up={() => moveIndex(-1)} - on:arrow-down={() => moveIndex(1)} -/> + (searchQuery = e.detail)} />