From 68790a4fbb57362463665804c77a6160e3cc0270 Mon Sep 17 00:00:00 2001 From: kieran Date: Mon, 20 Jan 2025 14:25:55 +0000 Subject: [PATCH] fix: search box --- packages/app/config/default.json | 6 ++--- .../src/Components/SearchBox/SearchBox.tsx | 5 +++-- packages/app/src/Pages/SearchPage.tsx | 3 ++- packages/system/src/cache/user-metadata.ts | 4 ++-- .../worker-relay/src/sqlite/sqlite-relay.ts | 22 +++++++------------ 5 files changed, 17 insertions(+), 23 deletions(-) diff --git a/packages/app/config/default.json b/packages/app/config/default.json index d7a531e0..f7a5bc82 100644 --- a/packages/app/config/default.json +++ b/packages/app/config/default.json @@ -21,9 +21,7 @@ }, "signUp": { "quickStart": false, - "defaultFollows": [ - "npub1sn0rtcjcf543gj4wsg7fa59s700d5ztys5ctj0g69g2x6802npjqhjjtws" - ] + "defaultFollows": ["npub1sn0rtcjcf543gj4wsg7fa59s700d5ztys5ctj0g69g2x6802npjqhjjtws"] }, "defaultPreferences": { "hideMutedNotes": false, @@ -65,4 +63,4 @@ "clientSecret": "GAl1YKLA3FveK1gLBYok" }, "chatChannels": [] -} \ No newline at end of file +} diff --git a/packages/app/src/Components/SearchBox/SearchBox.tsx b/packages/app/src/Components/SearchBox/SearchBox.tsx index 3c44eb1a..26679003 100644 --- a/packages/app/src/Components/SearchBox/SearchBox.tsx +++ b/packages/app/src/Components/SearchBox/SearchBox.tsx @@ -1,7 +1,7 @@ import "./SearchBox.css"; import { NostrLink, tryParseNostrLink } from "@snort/system"; -import { ChangeEvent, useEffect, useRef, useState } from "react"; +import { ChangeEvent, useEffect, useMemo, useRef, useState } from "react"; import { FormattedMessage, useIntl } from "react-intl"; import { useLocation, useNavigate } from "react-router-dom"; @@ -25,7 +25,8 @@ export default function SearchBox() { const [activeIndex, setActiveIndex] = useState(-1); const resultListRef = useRef(null); - const results = useProfileSearch(search); + const searchFn = useProfileSearch(); + const results = useMemo(() => searchFn(search), [search, searchFn]); useEffect(() => { const handleGlobalKeyDown = (e: KeyboardEvent) => { diff --git a/packages/app/src/Pages/SearchPage.tsx b/packages/app/src/Pages/SearchPage.tsx index a6c6298d..75fabb93 100644 --- a/packages/app/src/Pages/SearchPage.tsx +++ b/packages/app/src/Pages/SearchPage.tsx @@ -15,7 +15,8 @@ const NOTES = 0; const PROFILES = 1; const Profiles = ({ keyword }: { keyword: string }) => { - const results = useProfileSearch(keyword); + const searchFn = useProfileSearch(); + const results = useMemo(() => searchFn(keyword), [keyword, searchFn]); const ids = useMemo(() => results.map(r => r.pubkey), [results]); const content = keyword ? ( { constructor(table?: DexieTableLike) { super("UserCache", table); - this.#processZapperQueue(); - this.#processNip5Queue(); + //this.#processZapperQueue(); + //this.#processNip5Queue(); } key(of: CachedMetadata): string { diff --git a/packages/worker-relay/src/sqlite/sqlite-relay.ts b/packages/worker-relay/src/sqlite/sqlite-relay.ts index 843b0288..2940bb6b 100644 --- a/packages/worker-relay/src/sqlite/sqlite-relay.ts +++ b/packages/worker-relay/src/sqlite/sqlite-relay.ts @@ -132,10 +132,11 @@ export class SqliteRelay extends EventEmitter implements Rel // Handle legacy and standard replaceable events (kinds 0, 3, 41, 10000-19999) if (legacyReplaceableKinds.includes(ev.kind) || (ev.kind >= 10_000 && ev.kind < 20_000)) { - const oldEvents = db.selectValues( - `SELECT id FROM events WHERE kind = ? AND pubkey = ? AND created <= ?`, - [ev.kind, ev.pubkey, ev.created_at] - ) as Array; + const oldEvents = db.selectValues(`SELECT id FROM events WHERE kind = ? AND pubkey = ? AND created <= ?`, [ + ev.kind, + ev.pubkey, + ev.created_at, + ]) as Array; if (oldEvents.includes(ev.id)) { // Already have this event @@ -156,7 +157,7 @@ export class SqliteRelay extends EventEmitter implements Rel FROM events e JOIN tags t ON e.id = t.event_id WHERE e.kind = ? AND e.pubkey = ? AND t.key = ? AND t.value = ? AND created <= ?`, - [ev.kind, ev.pubkey, "d", dTag, ev.created_at] + [ev.kind, ev.pubkey, "d", dTag, ev.created_at], ) as Array; if (oldEvents.includes(ev.id)) { @@ -177,15 +178,8 @@ export class SqliteRelay extends EventEmitter implements Rel `INSERT OR IGNORE INTO events(id, pubkey, created, kind, json, relays) VALUES(?,?,?,?,?,?)`, { - bind: [ - ev.id, - ev.pubkey, - ev.created_at, - ev.kind, - JSON.stringify(evInsert), - (ev.relays ?? []).join(","), - ], - } + bind: [ev.id, ev.pubkey, ev.created_at, ev.kind, JSON.stringify(evInsert), (ev.relays ?? []).join(",")], + }, ); const insertedEvents = db.changes();