From 625c1db27c9634c82a17e84a566c7b5548058c0d Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Tue, 7 Mar 2023 13:12:26 -0600 Subject: [PATCH] Split up search and scan --- ROADMAP.md | 1 + src/App.svelte | 10 ++- src/agent/sync.ts | 13 ++-- src/partials/EnsureData.svelte | 4 +- src/routes/Scan.svelte | 81 +++++++++++++++++++++++ src/routes/Search.svelte | 51 +++++++++++---- src/views/SideNav.svelte | 7 +- src/views/search/Scan.svelte | 97 ---------------------------- src/views/search/SearchPeople.svelte | 43 ------------ 9 files changed, 140 insertions(+), 167 deletions(-) create mode 100644 src/routes/Scan.svelte delete mode 100644 src/views/search/Scan.svelte delete mode 100644 src/views/search/SearchPeople.svelte diff --git a/ROADMAP.md b/ROADMAP.md index 5f8d8f38..546969f7 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -38,6 +38,7 @@ # More +- [ ] Separate mentions from other notifications - [ ] Performance - same deal as with formatTimestamp, don't use functions inline since svelte can't cache them - [ ] Image Uploads diff --git a/src/App.svelte b/src/App.svelte index 869fccb6..d11d98b8 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -43,6 +43,7 @@ import NotFound from "src/routes/NotFound.svelte" import PersonDetail from "src/routes/PersonDetail.svelte" import Search from "src/routes/Search.svelte" + import Scan from "src/routes/Scan.svelte" import RelayDetail from "src/routes/RelayDetail.svelte" import RelayList from "src/routes/RelayList.svelte" import Profile from "src/views/Profile.svelte" @@ -177,9 +178,14 @@ {#if $ready}
- + - + + + + + + diff --git a/src/agent/sync.ts b/src/agent/sync.ts index 33ba4fc0..49e31528 100644 --- a/src/agent/sync.ts +++ b/src/agent/sync.ts @@ -1,7 +1,7 @@ import {uniq, pick, identity, isEmpty} from 'ramda' import {nip05} from 'nostr-tools' import {noop, createMap, ensurePlural, chunk, switcherFn} from 'hurdak/lib/hurdak' -import {log, warn} from 'src/util/logger' +import {log} from 'src/util/logger' import {lnurlEncode, lnurlDecode, tryFetch, now, sleep, tryJson, timedelta, shuffle, hash} from 'src/util/misc' import {Tags, roomAttrs, personKinds, isRelay, isShareableRelay, normalizeRelayUrl} from 'src/util/nostr' import database from 'src/agent/database' @@ -307,7 +307,7 @@ const verifyNip05 = (pubkey, as) => }, noop) const verifyZapper = async (pubkey, address) => { - let url, zapper, lnurl + let url // Try to parse it as a lud06 LNURL or as a lud16 address if (address.startsWith('lnurl1')) { @@ -325,13 +325,8 @@ const verifyZapper = async (pubkey, address) => { } const res = await tryFetch(() => fetch(url)) - - try { - zapper = await res.json() - lnurl = lnurlEncode('lnurl', url) - } catch (e) { - warn(e) - } + const zapper = await tryJson(() => res.json()) + const lnurl = lnurlEncode('lnurl', url) if (zapper?.allowsNostr && zapper?.nostrPubkey) { database.people.patch({pubkey, zapper, lnurl}) diff --git a/src/partials/EnsureData.svelte b/src/partials/EnsureData.svelte index 1d0d1c98..ca8b4757 100644 --- a/src/partials/EnsureData.svelte +++ b/src/partials/EnsureData.svelte @@ -5,7 +5,7 @@ import PersonInfo from "src/views/person/PersonInfo.svelte" import RelaySearch from "src/views/relays/RelaySearch.svelte" import RelayCard from "src/views/relays/RelayCard.svelte" - import SearchPeople from "src/views/search/SearchPeople.svelte" + import Search from "src/routes/Search.svelte" import database from 'src/agent/database' import user from 'src/agent/user' @@ -76,8 +76,8 @@
{/each} - + {:else if needsPeople()} diff --git a/src/routes/Scan.svelte b/src/routes/Scan.svelte new file mode 100644 index 00000000..7f04767c --- /dev/null +++ b/src/routes/Scan.svelte @@ -0,0 +1,81 @@ + + + +
handleInput(value)}> + + handleInput(value)}> + + + + + + +
+ Enter any nostr identifier (npub, nevent, nprofile, note or user@domain.tld), or click on the + camera icon to scan with your device's camera instead. +
+ {#if status === 'loading'} + + Loading your camera... + + {/if} +
diff --git a/src/routes/Search.svelte b/src/routes/Search.svelte index a8039e86..b762f044 100644 --- a/src/routes/Search.svelte +++ b/src/routes/Search.svelte @@ -1,22 +1,47 @@ - - {#if activeTab === 'people'} - - {:else if activeTab === 'advanced'} - - {/if} + + + + {#each (search ? search(q) : []).slice(0, 50) as person (person.pubkey)} + {#if person.pubkey !== user.getPubkey() && !(hideFollowing && $petnamePubkeys.includes(person.pubkey))} + + {/if} + {:else} + + {/each} diff --git a/src/views/SideNav.svelte b/src/views/SideNav.svelte index e254a628..4840f640 100644 --- a/src/views/SideNav.svelte +++ b/src/views/SideNav.svelte @@ -46,10 +46,15 @@ {/if}
  • - + Search
  • +
  • + + Scan + +
  • Feed diff --git a/src/views/search/Scan.svelte b/src/views/search/Scan.svelte deleted file mode 100644 index 78eec68a..00000000 --- a/src/views/search/Scan.svelte +++ /dev/null @@ -1,97 +0,0 @@ - - -{#if mode === 'input'} -
    handleInput(value)}> - - handleInput(value)}> - - - setMode('scan')}> - - - -
    - Enter any nostr identifier (npub, nevent, nprofile, note or user@domain.tld), or click on the - camera icon to scan with your device's camera instead. -
    -{:else} - {#if !ready} - - Loading your camera... - - {/if} -