Fix suggestions component

This commit is contained in:
Jon Staab
2025-02-04 19:37:59 -08:00
parent d4df23545d
commit 506276f594
6 changed files with 57 additions and 138 deletions
+1 -3
View File
@@ -28,9 +28,7 @@
</ModalHeader>
<Field>
{#snippet input()}
<div>
<ProfileMultiSelect autofocus bind:value={pubkeys} />
</div>
<ProfileMultiSelect autofocus bind:value={pubkeys} />
{/snippet}
</Field>
<ModalFooter>
+10 -9
View File
@@ -1,5 +1,5 @@
<script lang="ts">
import {derived} from "svelte/store"
import {writable} from "svelte/store"
import {type Instance} from "tippy.js"
import {append, remove, uniq} from "@welshman/lib"
import {profileSearch} from "@welshman/app"
@@ -19,15 +19,12 @@
let {value = $bindable(), autofocus = false}: Props = $props()
let term = $state("")
let input: Element | undefined = $state()
let popover: Instance | undefined = $state()
let instance: any = $state()
const term = writable("")
const search = derived(profileSearch, $profileSearch => $profileSearch.searchValues)
const search = (term: string) => $profileSearch.searchValues(term)
const selectPubkey = (pubkey: string) => {
term = ""
term.set("")
popover?.hide()
value = uniq(append(pubkey, value))
}
@@ -42,8 +39,12 @@
}
}
let input: Element | undefined = $state()
let popover: Instance | undefined = $state()
let instance: any = $state()
$effect(() => {
if (term) {
if ($term) {
popover?.show()
} else {
popover?.hide()
@@ -73,7 +74,7 @@
class="grow"
type="text"
placeholder="Search for profiles..."
bind:value={term}
bind:value={$term}
onkeydown={onKeyDown} />
</label>
<Tippy
+2 -1
View File
@@ -10,8 +10,9 @@
import WotScore from "@lib/components/WotScore.svelte"
import ProfileCircle from "@app/components/ProfileCircle.svelte"
const {pubkey} = $props()
const {value} = $props()
const pubkey = value
const profileDisplay = deriveProfileDisplay(pubkey)
const handle = deriveHandleForPubkey(pubkey)
const score = deriveUserWotScore(pubkey)
+2 -2
View File
@@ -85,10 +85,10 @@ export const makeEditor = ({
editor: (this as any).editor,
search: (term: string) => get(profileSearch).searchValues(term),
getRelays: (pubkey: string) => ctx.app.router.FromPubkeys([pubkey]).getUrls(),
createSuggestion: (pubkey: string) => {
createSuggestion: (value: string) => {
const target = document.createElement("div")
mount(ProfileSuggestion, {target, props: {pubkey}})
mount(ProfileSuggestion, {target, props: {value}})
return target
},