Fixed some layouts and naming (#24)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="modal-content" on:mousedown={(e) => e.preventDefault()}>
|
<div class="prompt-results" on:mousedown={(e) => e.preventDefault()}>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ let lastSearch = ""
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import InputSearch from "./InputSearch.svelte"
|
import InputSearch from "./InputSearch.svelte"
|
||||||
import ResultIemVault from "./ResultItemVault.svelte"
|
|
||||||
import {
|
import {
|
||||||
eventBus,
|
eventBus,
|
||||||
excerptAfter,
|
excerptAfter,
|
||||||
@@ -17,6 +16,7 @@ import { MarkdownView } from "obsidian"
|
|||||||
import { getSuggestions } from "../search"
|
import { getSuggestions } from "../search"
|
||||||
import ModalContainer from "./ModalContainer.svelte"
|
import ModalContainer from "./ModalContainer.svelte"
|
||||||
import type { OmnisearchInFileModal, OmnisearchVaultModal } from "src/modals"
|
import type { OmnisearchInFileModal, OmnisearchVaultModal } from "src/modals"
|
||||||
|
import ResultItemInFile from "./ResultItemInFile.svelte"
|
||||||
|
|
||||||
export let modal: OmnisearchInFileModal
|
export let modal: OmnisearchInFileModal
|
||||||
export let parent: OmnisearchVaultModal | null = null
|
export let parent: OmnisearchVaultModal | null = null
|
||||||
@@ -127,10 +127,9 @@ async function openSelection(): Promise<void> {
|
|||||||
<InputSearch value={searchQuery} on:input={(e) => (searchQuery = e.detail)} />
|
<InputSearch value={searchQuery} on:input={(e) => (searchQuery = e.detail)} />
|
||||||
|
|
||||||
<ModalContainer>
|
<ModalContainer>
|
||||||
<div class="prompt-results">
|
|
||||||
{#if groupedOffsets.length && note}
|
{#if groupedOffsets.length && note}
|
||||||
{#each groupedOffsets as offset, i}
|
{#each groupedOffsets as offset, i}
|
||||||
<ResultIemVault
|
<ResultItemInFile
|
||||||
{offset}
|
{offset}
|
||||||
{note}
|
{note}
|
||||||
index={i}
|
index={i}
|
||||||
@@ -142,7 +141,6 @@ async function openSelection(): Promise<void> {
|
|||||||
{:else}
|
{:else}
|
||||||
<center> We found 0 result for your search here. </center>
|
<center> We found 0 result for your search here. </center>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
|
||||||
</ModalContainer>
|
</ModalContainer>
|
||||||
<div class="prompt-instructions">
|
<div class="prompt-instructions">
|
||||||
<div class="prompt-instruction">
|
<div class="prompt-instruction">
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ import { TFile } from "obsidian"
|
|||||||
import { onMount, tick } from "svelte"
|
import { onMount, tick } from "svelte"
|
||||||
import InputSearch from "./InputSearch.svelte"
|
import InputSearch from "./InputSearch.svelte"
|
||||||
import ModalContainer from "./ModalContainer.svelte"
|
import ModalContainer from "./ModalContainer.svelte"
|
||||||
import ResultIemInFile from "./ResultItemInFile.svelte"
|
|
||||||
import { eventBus, type ResultNote } from "../globals"
|
import { eventBus, type ResultNote } from "../globals"
|
||||||
import { createNote, openNote } from "../notes"
|
import { createNote, openNote } from "../notes"
|
||||||
import { getSuggestions } from "../search"
|
import { getSuggestions } from "../search"
|
||||||
import { loopIndex } from "../utils"
|
import { loopIndex } from "../utils"
|
||||||
import { OmnisearchInFileModal, type OmnisearchVaultModal } from "src/modals"
|
import { OmnisearchInFileModal, type OmnisearchVaultModal } from "src/modals"
|
||||||
|
import ResultItemVault from "./ResultItemVault.svelte"
|
||||||
|
|
||||||
export let modal: OmnisearchVaultModal
|
export let modal: OmnisearchVaultModal
|
||||||
let selectedIndex = 0
|
let selectedIndex = 0
|
||||||
@@ -94,9 +94,8 @@ function scrollIntoView(): void {
|
|||||||
<InputSearch value={lastSearch} on:input={(e) => (searchQuery = e.detail)} />
|
<InputSearch value={lastSearch} on:input={(e) => (searchQuery = e.detail)} />
|
||||||
|
|
||||||
<ModalContainer>
|
<ModalContainer>
|
||||||
<div class="prompt-results">
|
|
||||||
{#each resultNotes as result, i}
|
{#each resultNotes as result, i}
|
||||||
<ResultIemInFile
|
<ResultItemVault
|
||||||
selected={i === selectedIndex}
|
selected={i === selectedIndex}
|
||||||
note={result}
|
note={result}
|
||||||
on:mousemove={(e) => (selectedIndex = i)}
|
on:mousemove={(e) => (selectedIndex = i)}
|
||||||
@@ -106,7 +105,6 @@ function scrollIntoView(): void {
|
|||||||
{#if !resultNotes.length && searchQuery}
|
{#if !resultNotes.length && searchQuery}
|
||||||
<center> We found 0 result for your search here. </center>
|
<center> We found 0 result for your search here. </center>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
|
||||||
</ModalContainer>
|
</ModalContainer>
|
||||||
|
|
||||||
<div class="prompt-instructions">
|
<div class="prompt-instructions">
|
||||||
|
|||||||
@@ -1,25 +1,18 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { ResultNote } from "../globals"
|
import type { ResultNote } from "../globals"
|
||||||
import { getMatches } from "../search"
|
|
||||||
import { highlighter, makeExcerpt, stringsToRegex } from "../utils"
|
import { highlighter, makeExcerpt, stringsToRegex } from "../utils"
|
||||||
import ResultItemContainer from "./ResultItemContainer.svelte"
|
import ResultItemContainer from "./ResultItemContainer.svelte"
|
||||||
|
|
||||||
export let selected = false
|
export let offset: number
|
||||||
export let note: ResultNote
|
export let note: ResultNote
|
||||||
|
export let index = 0
|
||||||
|
export let selected = false
|
||||||
|
|
||||||
$: reg = stringsToRegex(note.foundWords)
|
$: reg = stringsToRegex(note.foundWords)
|
||||||
$: matches = getMatches(note.content, reg)
|
$: cleanedContent = makeExcerpt(note?.content ?? "", offset)
|
||||||
$: cleanedContent = makeExcerpt(note.content, note.matches[0]?.offset ?? -1)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ResultItemContainer id={note.path} {selected} on:mousemove on:click>
|
<ResultItemContainer id={index.toString()} {selected} on:mousemove on:click>
|
||||||
<span class="omnisearch-result__title">
|
|
||||||
{@html note.basename.replace(reg, highlighter)}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span class="omnisearch-result__counter">
|
|
||||||
{matches.length} {matches.length > 1 ? "matches" : "match"}
|
|
||||||
</span>
|
|
||||||
<div class="omnisearch-result__body">
|
<div class="omnisearch-result__body">
|
||||||
{@html cleanedContent.replace(reg, highlighter)}
|
{@html cleanedContent.replace(reg, highlighter)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,19 +1,26 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { ResultNote } from "../globals"
|
import type { ResultNote } from "../globals"
|
||||||
|
import { getMatches } from "../search"
|
||||||
import { highlighter, makeExcerpt, stringsToRegex } from "../utils"
|
import { highlighter, makeExcerpt, stringsToRegex } from "../utils"
|
||||||
import ResultIemContainer from "./ResultItemContainer.svelte"
|
import ResultItemContainer from "./ResultItemContainer.svelte"
|
||||||
|
|
||||||
export let offset: number
|
|
||||||
export let note: ResultNote
|
|
||||||
export let index = 0
|
|
||||||
export let selected = false
|
export let selected = false
|
||||||
|
export let note: ResultNote
|
||||||
|
|
||||||
$: reg = stringsToRegex(note.foundWords)
|
$: reg = stringsToRegex(note.foundWords)
|
||||||
$: cleanedContent = makeExcerpt(note?.content ?? "", offset)
|
$: matches = getMatches(note.content, reg)
|
||||||
|
$: cleanedContent = makeExcerpt(note.content, note.matches[0]?.offset ?? -1)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<ResultIemContainer id={index.toString()} {selected} on:mousemove on:click>
|
<ResultItemContainer id={note.path} {selected} on:mousemove on:click>
|
||||||
|
<span class="omnisearch-result__title">
|
||||||
|
{@html note.basename.replace(reg, highlighter)}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="omnisearch-result__counter">
|
||||||
|
{matches.length} {matches.length > 1 ? "matches" : "match"}
|
||||||
|
</span>
|
||||||
<div class="omnisearch-result__body">
|
<div class="omnisearch-result__body">
|
||||||
{@html cleanedContent.replace(reg, highlighter)}
|
{@html cleanedContent.replace(reg, highlighter)}
|
||||||
</div>
|
</div>
|
||||||
</ResultIemContainer>
|
</ResultItemContainer>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ abstract class OmnisearchModal 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.removeClass('modal')
|
||||||
this.modalEl.tabIndex = -1
|
this.modalEl.tabIndex = -1
|
||||||
|
|
||||||
// Setup events that can be listened through the event bus
|
// Setup events that can be listened through the event bus
|
||||||
|
|||||||
Reference in New Issue
Block a user