Fixed note creation
This commit is contained in:
@@ -9,7 +9,7 @@ import CmpInput from "./CmpInput.svelte"
|
|||||||
import CmpResultNote from "./CmpResultNote.svelte"
|
import CmpResultNote from "./CmpResultNote.svelte"
|
||||||
import type { ResultNote } from "./globals"
|
import type { ResultNote } from "./globals"
|
||||||
import { ModalInFile, type ModalVault } from "./modal"
|
import { ModalInFile, type ModalVault } from "./modal"
|
||||||
import { openNote } from "./notes"
|
import { createNote, openNote } from "./notes"
|
||||||
import { getSuggestions } from "./search"
|
import { getSuggestions } from "./search"
|
||||||
import { loopIndex } from "./utils"
|
import { loopIndex } from "./utils"
|
||||||
|
|
||||||
@@ -32,20 +32,6 @@ onMount(() => {
|
|||||||
searchQuery = lastSearch
|
searchQuery = lastSearch
|
||||||
})
|
})
|
||||||
|
|
||||||
async function createOrOpenNote(item: ResultNote): Promise<void> {
|
|
||||||
try {
|
|
||||||
const file = await app.vault.create(searchQuery + ".md", "# " + searchQuery)
|
|
||||||
await app.workspace.openLinkText(file.path, "")
|
|
||||||
} catch (e) {
|
|
||||||
if (e instanceof Error && e.message === "File already exists.") {
|
|
||||||
// Open the existing file instead of creating it
|
|
||||||
await openNote(item)
|
|
||||||
} else {
|
|
||||||
console.error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function onClick() {
|
function onClick() {
|
||||||
if (!selectedNote) return
|
if (!selectedNote) return
|
||||||
openNote(selectedNote)
|
openNote(selectedNote)
|
||||||
@@ -65,9 +51,8 @@ function onInputCtrlEnter(): void {
|
|||||||
modal.close()
|
modal.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
function onInputShiftEnter(): void {
|
async function onInputShiftEnter(): Promise<void> {
|
||||||
if (!selectedNote) return
|
await createNote(searchQuery)
|
||||||
createOrOpenNote(selectedNote)
|
|
||||||
modal.close()
|
modal.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
16
src/notes.ts
16
src/notes.ts
@@ -24,3 +24,19 @@ export async function openNote(
|
|||||||
to: { line: pos.line + 10, ch: 0 },
|
to: { line: pos.line + 10, ch: 0 },
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function createNote(name: string): Promise<void> {
|
||||||
|
try {
|
||||||
|
const file = await app.vault.create(name + '.md', '# ' + name + '\n')
|
||||||
|
await app.workspace.openLinkText(file.path, '')
|
||||||
|
const view = app.workspace.getActiveViewOfType(MarkdownView)
|
||||||
|
if (!view) {
|
||||||
|
throw new Error('OmniSearch - No active MarkdownView')
|
||||||
|
}
|
||||||
|
const pos = view.editor.offsetToPos(name.length + 5)
|
||||||
|
pos.ch = 0
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user