@@ -28,11 +28,17 @@ let note: ResultNote | null = null
|
|||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
searchQuery = lastSearch
|
searchQuery = lastSearch
|
||||||
|
eventBus.disable("vault")
|
||||||
|
|
||||||
eventBus.on("infile", "enter", openSelection)
|
eventBus.on("infile", "enter", openSelection)
|
||||||
eventBus.on("infile", "arrow-up", () => moveIndex(-1))
|
eventBus.on("infile", "arrow-up", () => moveIndex(-1))
|
||||||
eventBus.on("infile", "arrow-down", () => moveIndex(1))
|
eventBus.on("infile", "arrow-down", () => moveIndex(1))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
onDestroy(() => {
|
||||||
|
eventBus.enable("vault")
|
||||||
|
})
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
if (searchQuery) {
|
if (searchQuery) {
|
||||||
note = getSuggestions(searchQuery, { singleFilePath })[0] ?? null
|
note = getSuggestions(searchQuery, { singleFilePath })[0] ?? null
|
||||||
|
|||||||
36
src/modal.ts
36
src/modal.ts
@@ -13,8 +13,9 @@ abstract class ModalOmnisearch extends Modal {
|
|||||||
this.modalEl.replaceChildren()
|
this.modalEl.replaceChildren()
|
||||||
this.modalEl.append(closeEl)
|
this.modalEl.append(closeEl)
|
||||||
this.modalEl.addClass('omnisearch-modal', 'prompt')
|
this.modalEl.addClass('omnisearch-modal', 'prompt')
|
||||||
|
|
||||||
this.modalEl.tabIndex = -1
|
this.modalEl.tabIndex = -1
|
||||||
|
|
||||||
|
// Setup events that can be listened through the event bus
|
||||||
this.modalEl.onkeydown = ev => {
|
this.modalEl.onkeydown = ev => {
|
||||||
switch (ev.key) {
|
switch (ev.key) {
|
||||||
case 'ArrowDown':
|
case 'ArrowDown':
|
||||||
@@ -52,12 +53,18 @@ abstract class ModalOmnisearch extends Modal {
|
|||||||
export class ModalVault extends ModalOmnisearch {
|
export class ModalVault extends ModalOmnisearch {
|
||||||
constructor(app: App) {
|
constructor(app: App) {
|
||||||
super(app)
|
super(app)
|
||||||
new CmpModalVault({
|
const cmp = new CmpModalVault({
|
||||||
target: this.modalEl,
|
target: this.modalEl,
|
||||||
props: {
|
props: {
|
||||||
modal: this,
|
modal: this,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
this.onClose = () => {
|
||||||
|
// Since the component is manually created,
|
||||||
|
// we also need to manually destroy it
|
||||||
|
cmp.$destroy()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,19 +77,7 @@ export class ModalInFile extends ModalOmnisearch {
|
|||||||
) {
|
) {
|
||||||
super(app)
|
super(app)
|
||||||
|
|
||||||
if (parent) {
|
const cmp = new CmpModalInFile({
|
||||||
// Hide the parent modal
|
|
||||||
parent.containerEl.toggleVisibility(false)
|
|
||||||
this.onOpen = () => {
|
|
||||||
eventBus.disable('vault')
|
|
||||||
}
|
|
||||||
this.onClose = () => {
|
|
||||||
eventBus.enable('vault')
|
|
||||||
parent.containerEl.toggleVisibility(true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
new CmpModalInFile({
|
|
||||||
target: this.modalEl,
|
target: this.modalEl,
|
||||||
props: {
|
props: {
|
||||||
modal: this,
|
modal: this,
|
||||||
@@ -91,5 +86,16 @@ export class ModalInFile extends ModalOmnisearch {
|
|||||||
searchQuery,
|
searchQuery,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (parent) {
|
||||||
|
// Hide the parent vault modal, and show it back when this one is closed
|
||||||
|
parent.containerEl.toggleVisibility(false)
|
||||||
|
}
|
||||||
|
this.onClose = () => {
|
||||||
|
if (parent) {
|
||||||
|
parent.containerEl.toggleVisibility(true)
|
||||||
|
}
|
||||||
|
cmp.$destroy()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user