In-file search ok

This commit is contained in:
Simon Cambier
2022-04-18 22:01:15 +02:00
parent 47b30b5c62
commit f6c3f9b580
8 changed files with 133 additions and 138 deletions

View File

@@ -1,7 +1,7 @@
<script lang="ts">
import { debounce } from "obsidian";
import { debounce } from "obsidian"
import { createEventDispatcher, onMount, tick } from "svelte"
import { searchQuery, selectedNote } from "./stores"
import { searchQuery } from "./stores"
let elInput: HTMLInputElement
let inputValue: string
@@ -14,50 +14,36 @@ onMount(async () => {
elInput.select()
})
const debouncedOnInput = debounce(() => $searchQuery = inputValue, 100)
const debouncedOnInput = debounce(() => ($searchQuery = inputValue), 100)
function moveNoteSelection(ev: KeyboardEvent): void {
switch (ev.key) {
case "ArrowDown":
ev.preventDefault()
selectedNote.next()
dispatch("arrow-down")
break
case "ArrowUp":
ev.preventDefault()
selectedNote.previous()
dispatch("arrow-up")
break
// case "ArrowLeft":
// ev.preventDefault()
// break
// case "ArrowRight":
// ev.preventDefault()
// break
case "Enter":
ev.preventDefault()
if (ev.ctrlKey || ev.metaKey) {
// Open in a new pane
dispatch("ctrl-enter", $selectedNote)
dispatch("ctrl-enter")
} else if (ev.shiftKey) {
// Create a new note
dispatch("shift-enter", $selectedNote)
dispatch("shift-enter")
} else if (ev.altKey) {
// Create a new note
dispatch("alt-enter", $selectedNote)
dispatch("alt-enter")
} else {
// Open in current pane
dispatch("enter", $selectedNote)
dispatch("enter")
}
break
}
// Scroll selected note into view when selecting with keyboard
if ($selectedNote) {
const elem = document.querySelector(
`[data-note-id="${$selectedNote.path}"]`
)
elem?.scrollIntoView({ behavior: "auto", block: "nearest" })
}
}
</script>