Fix enter selecting an option when there is no term. Closes #84
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
import {getTagValue, getTagValues, getAddress} from "@welshman/util"
|
import {getTagValue, getTagValues, getAddress} from "@welshman/util"
|
||||||
import {pubkey} from "@welshman/app"
|
import {pubkey} from "@welshman/app"
|
||||||
import Pen2 from "@assets/icons/pen-2.svg?dataurl"
|
import Pen2 from "@assets/icons/pen-2.svg?dataurl"
|
||||||
import {normalizeTopic} from '@lib/util'
|
import {normalizeTopic} from "@lib/util"
|
||||||
import Link from "@lib/components/Link.svelte"
|
import Link from "@lib/components/Link.svelte"
|
||||||
import Icon from "@lib/components/Icon.svelte"
|
import Icon from "@lib/components/Icon.svelte"
|
||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import {writable} from "svelte/store"
|
import {writable} from "svelte/store"
|
||||||
import type {Writable} from "svelte/store"
|
import type {Writable} from "svelte/store"
|
||||||
import type {Instance} from "tippy.js"
|
import type {Instance} from "tippy.js"
|
||||||
import {remove, without, uniq} from "@welshman/lib"
|
import {remove, reject, spec, uniq} from "@welshman/lib"
|
||||||
import {createSearch, topics} from "@welshman/app"
|
import {createSearch, topics} from "@welshman/app"
|
||||||
import {normalizeTopic} from "@lib/util"
|
import {normalizeTopic} from "@lib/util"
|
||||||
import Suggestions from "@lib/components/Suggestions.svelte"
|
import Suggestions from "@lib/components/Suggestions.svelte"
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
let {value = $bindable(), term = writable("")}: Props = $props()
|
let {value = $bindable(), term = writable("")}: Props = $props()
|
||||||
|
|
||||||
const topicSearch = $derived.by(() =>
|
const topicSearch = $derived.by(() =>
|
||||||
createSearch(without(value, $topics), {
|
createSearch(reject(spec({name: value}), $topics), {
|
||||||
getValue: topic => topic.name,
|
getValue: topic => topic.name,
|
||||||
fuseOptions: {
|
fuseOptions: {
|
||||||
keys: ["name"],
|
keys: ["name"],
|
||||||
@@ -76,9 +76,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex flex-col gap-2">
|
<div class="flex flex-col gap-2">
|
||||||
<div class="flex flex-wrap gap-2">
|
<div>
|
||||||
{#each value as topic (topic)}
|
{#each value as topic (topic)}
|
||||||
<div class="badge badge-neutral gap-1">
|
<div class="flex-inline badge badge-neutral mr-1 gap-1">
|
||||||
<Button class="flex items-center" onclick={() => removeTopic(topic)}>
|
<Button class="flex items-center" onclick={() => removeTopic(topic)}>
|
||||||
<Icon icon={CloseCircle} size={4} class="-ml-1 mt-px" />
|
<Icon icon={CloseCircle} size={4} class="-ml-1 mt-px" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
let items: string[] = $state([])
|
let items: string[] = $state([])
|
||||||
|
|
||||||
const populateItems = throttle(300, term => {
|
const populateItems = throttle(300, term => {
|
||||||
items = search(term).slice(0, 5)
|
items = term ? search(term).slice(0, 5) : []
|
||||||
})
|
})
|
||||||
|
|
||||||
const setIndex = (newIndex: number, block: any) => {
|
const setIndex = (newIndex: number, block: any) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user