Tweak data loading

This commit is contained in:
Jon Staab
2025-04-11 14:44:27 -07:00
parent 10a1e6e640
commit d5b1fab1e7
6 changed files with 25 additions and 25 deletions
+1 -3
View File
@@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import {onMount} from "svelte" import {onMount} from "svelte"
import {displayRelayUrl, GROUP_META} from "@welshman/util" import {displayRelayUrl} from "@welshman/util"
import {fly} from "@lib/transition" import {fly} from "@lib/transition"
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"
@@ -22,7 +22,6 @@
deriveOtherRooms, deriveOtherRooms,
} from "@app/state" } from "@app/state"
import {notifications} from "@app/notifications" import {notifications} from "@app/notifications"
import {pullConservatively} from "@app/requests"
import {pushModal} from "@app/modal" import {pushModal} from "@app/modal"
import {makeSpacePath} from "@app/routes" import {makeSpacePath} from "@app/routes"
@@ -66,7 +65,6 @@
onMount(() => { onMount(() => {
replaceState = Boolean(element?.closest(".drawer")) replaceState = Boolean(element?.closest(".drawer"))
pullConservatively({relays: [url], filters: [{kinds: [GROUP_META]}]})
}) })
</script> </script>
+3 -3
View File
@@ -2,7 +2,7 @@
import {onMount} from "svelte" import {onMount} from "svelte"
import type {Snippet} from "svelte" import type {Snippet} from "svelte"
import {groupBy, uniq, uniqBy, batch} from "@welshman/lib" import {groupBy, uniq, uniqBy, batch} from "@welshman/lib"
import {REACTION, getTag, REPORT, DELETE} from "@welshman/util" import {REACTION, getReplyFilters, getTag, REPORT, DELETE} from "@welshman/util"
import type {TrustedEvent} from "@welshman/util" import type {TrustedEvent} from "@welshman/util"
import {deriveEvents} from "@welshman/store" import {deriveEvents} from "@welshman/store"
import {load} from "@welshman/net" import {load} from "@welshman/net"
@@ -58,11 +58,11 @@
load({ load({
relays: [url], relays: [url],
signal: controller.signal, signal: controller.signal,
filters: [{kinds: [REACTION, REPORT, DELETE], "#e": [event.id]}], filters: getReplyFilters([event], {kinds: [REACTION, REPORT, DELETE]}),
onEvent: batch(300, (events: TrustedEvent[]) => { onEvent: batch(300, (events: TrustedEvent[]) => {
load({ load({
relays: [url], relays: [url],
filters: [{kinds: [DELETE], "#e": events.map(e => e.id)}], filters: getReplyFilters(events, {kinds: [DELETE]}),
}) })
}), }),
}) })
+6 -2
View File
@@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import {onMount} from "svelte" import {onMount} from "svelte"
import {sleep, identity, nthEq} from "@welshman/lib" import {sleep, identity, nthEq} from "@welshman/lib"
import {load} from "@welshman/net" import {request} from "@welshman/net"
import {displayRelayUrl, AUTH_INVITE} from "@welshman/util" import {displayRelayUrl, AUTH_INVITE} from "@welshman/util"
import {slide} from "@lib/transition" import {slide} from "@lib/transition"
import Spinner from "@lib/components/Spinner.svelte" import Spinner from "@lib/components/Spinner.svelte"
@@ -29,7 +29,11 @@
onMount(async () => { onMount(async () => {
const [[event]] = await Promise.all([ const [[event]] = await Promise.all([
load({filters: [{kinds: [AUTH_INVITE]}], relays: [url]}), request({
relays: [url],
autoClose: true,
filters: [{kinds: [AUTH_INVITE]}],
}),
sleep(2000), sleep(2000),
]) ])
+2 -4
View File
@@ -348,9 +348,7 @@ export const listenForNotifications = () => {
relays: [url], relays: [url],
filters: [ filters: [
{kinds: [THREAD], limit: 1}, {kinds: [THREAD], limit: 1},
{kinds: [EVENT_TIME], limit: 1},
{kinds: [COMMENT], "#K": [String(THREAD)], limit: 1}, {kinds: [COMMENT], "#K": [String(THREAD)], limit: 1},
{kinds: [COMMENT], "#K": [String(EVENT_TIME)], limit: 1},
...rooms.map(room => ({kinds: [MESSAGE], "#h": [room], limit: 1})), ...rooms.map(room => ({kinds: [MESSAGE], "#h": [room], limit: 1})),
], ],
}) })
@@ -359,8 +357,8 @@ export const listenForNotifications = () => {
signal: controller.signal, signal: controller.signal,
relays: [url], relays: [url],
filters: [ filters: [
{kinds: [THREAD, EVENT_TIME], since: now()}, {kinds: [THREAD], since: now()},
{kinds: [COMMENT], "#K": [String(THREAD), String(EVENT_TIME)], since: now()}, {kinds: [COMMENT], "#K": [String(THREAD)], since: now()},
...rooms.map(room => ({kinds: [MESSAGE], "#h": [room], since: now()})), ...rooms.map(room => ({kinds: [MESSAGE], "#h": [room], since: now()})),
], ],
}) })
+3 -4
View File
@@ -3,7 +3,7 @@
import * as nip19 from "nostr-tools/nip19" import * as nip19 from "nostr-tools/nip19"
import type {TrustedEvent} from "@welshman/util" import type {TrustedEvent} from "@welshman/util"
import {Address, getIdFilters, getTagValue} from "@welshman/util" import {Address, getIdFilters, getTagValue} from "@welshman/util"
import {request} from "@welshman/net" import {load} from "@welshman/net"
import {page} from "$app/stores" import {page} from "$app/stores"
import {goto} from "$app/navigation" import {goto} from "$app/navigation"
import {scrollToEvent} from "@lib/html" import {scrollToEvent} from "@lib/html"
@@ -21,10 +21,9 @@
let found = false let found = false
request({ load({
autoClose: true,
filters: getIdFilters([type === "nevent" ? data.id : Address.fromNaddr(bech32).toString()]),
relays: data.relays, relays: data.relays,
filters: getIdFilters([type === "nevent" ? data.id : Address.fromNaddr(bech32).toString()]),
onEvent: (event: TrustedEvent) => { onEvent: (event: TrustedEvent) => {
found = true found = true
+10 -9
View File
@@ -1,8 +1,8 @@
<script lang="ts"> <script lang="ts">
import {onMount} from "svelte" import {onMount} from "svelte"
import {page} from "$app/stores" import {page} from "$app/stores"
import {ago, MONTH} from "@welshman/lib" import {ago, WEEK} from "@welshman/lib"
import {GROUPS, THREAD, COMMENT, MESSAGE} from "@welshman/util" import {GROUP_META, EVENT_TIME, GROUPS, THREAD, COMMENT, MESSAGE} from "@welshman/util"
import {request} from "@welshman/net" import {request} from "@welshman/net"
import Page from "@lib/components/Page.svelte" import Page from "@lib/components/Page.svelte"
import SecondaryNav from "@lib/components/SecondaryNav.svelte" import SecondaryNav from "@lib/components/SecondaryNav.svelte"
@@ -52,21 +52,22 @@
checkConnection() checkConnection()
const relays = [url] const relays = [url]
const since = ago(MONTH) const since = ago(WEEK)
const controller = new AbortController()
// Load groups, threads, comments, and recent messages for user rooms to help with a quick page transition // Load group meta, threads, calendar events, comments, and recent messages
// for user rooms to help with a quick page transition
pullConservatively({ pullConservatively({
relays, relays,
filters: [ filters: [
{kinds: [THREAD], since}, {kinds: [GROUP_META]},
{kinds: [COMMENT], "#K": [String(THREAD)], since}, {kinds: [THREAD, EVENT_TIME], since},
...rooms.map(r => ({kinds: [MESSAGE], "#h": [r], since})), {kinds: [COMMENT], "#K": [String(THREAD), String(EVENT_TIME)], since},
...rooms.map(room => ({kinds: [MESSAGE], "#h": [room], since})),
], ],
}) })
// Completely refresh our groups list and listen for new ones // Completely refresh our groups list and listen for new ones
const controller = new AbortController()
request({relays, filters: [{kinds: [GROUPS]}], signal: controller.signal}) request({relays, filters: [{kinds: [GROUPS]}], signal: controller.signal})
return () => { return () => {