From d65aa309db61d7ae4fe83973104a48639f44027d Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Tue, 13 Jun 2023 09:08:05 -0700 Subject: [PATCH] Add filter summary to feeds --- CHANGELOG.md | 5 ++- ROADMAP.md | 1 - src/agent/cmd.ts | 1 + src/app/shared/Feed.svelte | 13 ++++--- src/app/shared/FeedAdvanced.svelte | 2 +- src/app/shared/FilterSummary.svelte | 56 +++++++++++++++++++++++++++++ src/app/shared/NoteReply.svelte | 2 +- src/app/views/Apps.svelte | 1 - src/app/views/Feeds.svelte | 2 +- src/partials/Chip.svelte | 7 ++-- src/partials/MultiSelect.svelte | 2 +- 11 files changed, 78 insertions(+), 14 deletions(-) create mode 100644 src/app/shared/FilterSummary.svelte diff --git a/CHANGELOG.md b/CHANGELOG.md index ad54097a..c46350ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,10 @@ # 0.2.31 -- [x] Added the ability to view and write reviews on relays, with ratings +- [x] Add the ability to view and write reviews on relays, with ratings +- [x] Add support for parsing and displaying lnurl invoices +- [x] Add advanced search to feeds with a summary of the filter applied +- [x] Improve url parsing # 0.2.30 diff --git a/ROADMAP.md b/ROADMAP.md index 1f92b5da..e5fef3fb 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -17,7 +17,6 @@ - [ ] Fix unauthenticated experience. Going to an npub just spins - [ ] Convert app store to nip 89 - [ ] Put search icon in header or hover button, open in modal -- [ ] Advanced search # Core diff --git a/src/agent/cmd.ts b/src/agent/cmd.ts index f94ca093..a292d0e5 100644 --- a/src/agent/cmd.ts +++ b/src/agent/cmd.ts @@ -160,6 +160,7 @@ class PublishableEvent { } async publish(relays, onProgress = null, verb = "EVENT") { const event = await this.getSignedEvent() + // console.log(event); return const promise = pool.publish({relays, event, onProgress, verb}) // Copy the event since loki mutates it to add metadata diff --git a/src/app/shared/Feed.svelte b/src/app/shared/Feed.svelte index e61bdf14..eb06964a 100644 --- a/src/app/shared/Feed.svelte +++ b/src/app/shared/Feed.svelte @@ -10,6 +10,7 @@ import Spinner from "src/partials/Spinner.svelte" import Modal from "src/partials/Modal.svelte" import Content from "src/partials/Content.svelte" + import FilterSummary from "src/app/shared/FilterSummary.svelte" import FeedAdvanced from "src/app/shared/FeedAdvanced.svelte" import RelayFeed from "src/app/shared/RelayFeed.svelte" import Note from "src/app/shared/Note.svelte" @@ -36,6 +37,7 @@ $: searchNotes = debounce(300, fuzzy(notes, {keys: ["content"]})) $: filteredNotes = search ? searchNotes(search) : notes + $: mergedFilter = mergeFilter(filter, overrides) const since = now() const maxNotes = 100 @@ -121,14 +123,12 @@ // If we have a search term we need to use only relays that support search const getRelays = () => (overrides?.search ? [{url: "wss://relay.nostr.band"}] : relays) - const getFilter = () => mergeFilter(filter, {since, ...overrides}) - const loadMore = async () => { const _key = key // Wait for this page to load before trying again await cursor.loadPage({ - filter: getFilter(), + filter: mergedFilter, onChunk: chunk => { // Stack promises to avoid too many concurrent subscriptions p = p.then(() => key === _key && onChunk(chunk)) @@ -157,7 +157,7 @@ if (!filter.until) { sub = network.listen({ relays: getRelays(), - filter: getFilter(), + filter: mergeFilter(mergedFilter, {since}), onChunk: chunk => { p = p.then(() => _key === key && onChunk(chunk)) }, @@ -192,7 +192,10 @@ {/if} - +
+ + +
{#each filteredNotes as note (note.id)} diff --git a/src/app/shared/FeedAdvanced.svelte b/src/app/shared/FeedAdvanced.svelte index 7abdde85..33cd3386 100644 --- a/src/app/shared/FeedAdvanced.svelte +++ b/src/app/shared/FeedAdvanced.svelte @@ -55,7 +55,7 @@ } -
+
{ diff --git a/src/app/shared/FilterSummary.svelte b/src/app/shared/FilterSummary.svelte new file mode 100644 index 00000000..7d97687a --- /dev/null +++ b/src/app/shared/FilterSummary.svelte @@ -0,0 +1,56 @@ + + +
+ {#each parts as part} + {part} + {/each} +
diff --git a/src/app/shared/NoteReply.svelte b/src/app/shared/NoteReply.svelte index 390bac59..47baeae9 100644 --- a/src/app/shared/NoteReply.svelte +++ b/src/app/shared/NoteReply.svelte @@ -130,7 +130,7 @@
{#each data.mentions as p} - removeMention(p)}> + removeMention(p)}> {displayPerson(getPersonWithFallback(p))} {:else} diff --git a/src/app/views/Apps.svelte b/src/app/views/Apps.svelte index e348ae82..28f51b41 100644 --- a/src/app/views/Apps.svelte +++ b/src/app/views/Apps.svelte @@ -19,7 +19,6 @@ ["https://nostrplebs.com", "NostrPlebs", "Get verified at nostrplebs.com."], ["https://nadar.tigerville.no", "Nadar", "Find out what relays know about your post."], ["https://pinstr.app", "Pinstr", "Create and manage collections of notes."], - ["https://advancednostrsearch.vercel.app", "Advanced Search", "Find what you're looking for."], ] document.title = "Apps" diff --git a/src/app/views/Feeds.svelte b/src/app/views/Feeds.svelte index 9e671201..668710a4 100644 --- a/src/app/views/Feeds.svelte +++ b/src/app/views/Feeds.svelte @@ -46,7 +46,7 @@ relays = urls.length > 0 ? urls.map(objOf("url")) : sampleRelays(getUserReadRelays()) } - filter = [{...filter, kinds: [1]}] + filter = {...filter, kinds: [1, 1985]} } const setActiveTab = tab => { diff --git a/src/partials/Chip.svelte b/src/partials/Chip.svelte index 0ddab427..daabb7b6 100644 --- a/src/partials/Chip.svelte +++ b/src/partials/Chip.svelte @@ -1,7 +1,8 @@