diff --git a/src/app/components/Alerts.svelte b/src/app/components/Alerts.svelte index a98b5c5b..5283b65b 100644 --- a/src/app/components/Alerts.svelte +++ b/src/app/components/Alerts.svelte @@ -1,7 +1,8 @@ diff --git a/src/app/components/ChatMenu.svelte b/src/app/components/ChatMenu.svelte index 9f712766..ac18c246 100644 --- a/src/app/components/ChatMenu.svelte +++ b/src/app/components/ChatMenu.svelte @@ -1,5 +1,6 @@ diff --git a/src/app/components/SpaceEdit.svelte b/src/app/components/SpaceEdit.svelte index 9677465b..b414f09e 100644 --- a/src/app/components/SpaceEdit.svelte +++ b/src/app/components/SpaceEdit.svelte @@ -2,7 +2,7 @@ import {uniqBy, prop, ifLet} from "@welshman/lib" import type {RelayProfile} from "@welshman/util" import {displayRelayUrl, ManagementMethod} from "@welshman/util" - import {manageRelay, relays, fetchRelayProfileDirectly} from "@welshman/app" + import {manageRelay, relays, fetchRelayDirectly} from "@welshman/app" import StickerSmileSquare from "@assets/icons/sticker-smile-square.svg?dataurl" import SettingsMinimalistic from "@assets/icons/settings-minimalistic.svg?dataurl" import AltArrowLeft from "@assets/icons/alt-arrow-left.svg?dataurl" @@ -72,8 +72,12 @@ } // Force-reload the relay - ifLet(await fetchRelayProfileDirectly(url), profile => { - relays.update($relays => uniqBy(prop("url"), [{...profile, url}, ...$relays])) + ifLet(await fetchRelayDirectly(url), relay => { + relaysByUrl.update($relaysByUrl => { + $relaysByUrl.set(url, relay) + + return new Map($relaysByUrl) + }) }) pushToast({message: "Your changes have been saved!"}) diff --git a/src/app/core/commands.ts b/src/app/core/commands.ts index 5067d44f..473fb5e3 100644 --- a/src/app/core/commands.ts +++ b/src/app/core/commands.ts @@ -31,7 +31,7 @@ import { DELETE, REPORT, PROFILE, - INBOX_RELAYS, + MESSAGING_RELAYS, RELAYS, FOLLOWS, REACTION, @@ -82,8 +82,8 @@ import { profilesByPubkey, tagEvent, tagEventForReaction, - userRelaySelections, - userInboxRelaySelections, + userRelayList, + userMessagingRelayList, nip44EncryptToSelf, dropSession, tagEventForComment, @@ -106,8 +106,8 @@ import { userSpaceUrls, userSettingsValues, getSetting, - userInboxRelays, - userGroupSelections, + userMessagingRelays, + userGroupList, shouldIgnoreError, } from "@app/core/state" import {loadAlertStatuses} from "@app/core/requests" @@ -164,7 +164,7 @@ export const logout = async () => { export const broadcastUserData = async (relays: string[]) => { const authors = [pubkey.get()!] - const kinds = [RELAYS, INBOX_RELAYS, FOLLOWS, PROFILE] + const kinds = [RELAYS, MESSAGING_RELAYS, FOLLOWS, PROFILE] const events = repository.query([{kinds, authors}]) for (const event of events) { @@ -177,7 +177,7 @@ export const broadcastUserData = async (relays: string[]) => { // List updates export const addSpaceMembership = async (url: string) => { - const list = get(userGroupSelections) || makeList({kind: ROOMS}) + const list = get(userGroupList) || makeList({kind: ROOMS}) const event = await addToListPublicly(list, ["r", url]).reconcile(nip44EncryptToSelf) const relays = uniq([...Router.get().FromUser().getUrls(), ...getRelayTagValues(event.tags)]) @@ -185,7 +185,7 @@ export const addSpaceMembership = async (url: string) => { } export const removeSpaceMembership = async (url: string) => { - const list = get(userGroupSelections) || makeList({kind: ROOMS}) + const list = get(userGroupList) || makeList({kind: ROOMS}) const pred = (t: string[]) => t[t[0] === "r" ? 1 : 2] === url const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf) const relays = uniq([url, ...Router.get().FromUser().getUrls(), ...getRelayTagValues(event.tags)]) @@ -194,7 +194,7 @@ export const removeSpaceMembership = async (url: string) => { } export const addRoomMembership = async (url: string, h: string) => { - const list = get(userGroupSelections) || makeList({kind: ROOMS}) + const list = get(userGroupList) || makeList({kind: ROOMS}) const newTags = [ ["r", url], ["group", h, url], @@ -206,7 +206,7 @@ export const addRoomMembership = async (url: string, h: string) => { } export const removeRoomMembership = async (url: string, h: string) => { - const list = get(userGroupSelections) || makeList({kind: ROOMS}) + const list = get(userGroupList) || makeList({kind: ROOMS}) const pred = (t: string[]) => equals(["group", h, url], t.slice(0, 3)) const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf) const relays = uniq([url, ...Router.get().FromUser().getUrls(), ...getRelayTagValues(event.tags)]) @@ -215,7 +215,7 @@ export const removeRoomMembership = async (url: string, h: string) => { } export const setRelayPolicy = (url: string, read: boolean, write: boolean) => { - const list = get(userRelaySelections) || makeList({kind: RELAYS}) + const list = get(userRelayList) || makeList({kind: RELAYS}) const tags = getRelayTags(getListTags(list)).filter(t => normalizeRelayUrl(t[1]) !== url) if (read && write) { @@ -232,10 +232,10 @@ export const setRelayPolicy = (url: string, read: boolean, write: boolean) => { }) } -export const setInboxRelayPolicy = (url: string, enabled: boolean) => { - const list = get(userInboxRelaySelections) || makeList({kind: INBOX_RELAYS}) +export const setMessagingRelayPolicy = (url: string, enabled: boolean) => { + const list = get(userMessagingRelayList) || makeList({kind: MESSAGING_RELAYS}) - // Only update inbox policies if they already exist or we're adding them + // Only update messaging policies if they already exist or we're adding them if (enabled || getRelaysFromList(list).includes(url)) { const tags = getRelayTags(getListTags(list)).filter(t => normalizeRelayUrl(t[1]) !== url) @@ -542,7 +542,7 @@ export const createDmAlert = async () => { description: `for direct messages.`, feed: makeIntersectionFeed( feedFromFilters([{kinds: [WRAP], "#p": [pubkey.get()!]}]), - makeRelayFeed(...get(userInboxRelays)), + makeRelayFeed(...get(userMessagingRelays)), ), }) } diff --git a/src/app/core/state.ts b/src/app/core/state.ts index da84cb4c..c0e28e86 100644 --- a/src/app/core/state.ts +++ b/src/app/core/state.ts @@ -122,8 +122,8 @@ import { appContext, getThunkError, publishThunk, - userRelaySelections, - userInboxRelaySelections, + userRelayList, + userMessagingRelayList, deriveRelay, makeUserData, makeUserLoader, @@ -390,18 +390,6 @@ export const relaysPendingTrust = writable([]) export const relaysMostlyRestricted = writable>({}) -// Relay selections - -export const userReadRelays = derived(userRelaySelections, $l => - getRelaysFromList($l, RelayMode.Read), -) - -export const userWriteRelays = derived(userRelaySelections, $l => - getRelaysFromList($l, RelayMode.Write), -) - -export const userInboxRelays = derived(userInboxRelaySelections, $l => getRelaysFromList($l)) - // Alerts export type Alert = { @@ -610,29 +598,29 @@ export const displayRoom = (url: string, h: string) => export const roomComparator = (url: string) => (h: string) => displayRoom(url, h).toLowerCase() -// User space/room selections +// User space/room lists -export const groupSelections = deriveEventsMapped(repository, { +export const groupLists = deriveEventsMapped(repository, { filters: [{kinds: [ROOMS]}], itemToEvent: item => item.event, eventToItem: (event: TrustedEvent) => readList(asDecryptedEvent(event)), }) export const { - indexStore: groupSelectionsByPubkey, - deriveItem: deriveGroupSelections, - loadItem: loadGroupSelections, + indexStore: groupListsByPubkey, + deriveItem: deriveGroupList, + loadItem: loadGroupList, } = collection({ - name: "groupSelections", - store: groupSelections, + name: "groupLists", + store: groupLists, getKey: list => list.event.pubkey, load: makeOutboxLoader(ROOMS), }) -export const groupSelectionsPubkeysByUrl = derived(groupSelections, $groupSelections => { +export const groupListsPubkeysByUrl = derived(groupLists, $groupLists => { const result = new Map>() - for (const list of $groupSelections) { + for (const list of $groupLists) { const tags = getListTags(list) for (const url of getRelayTagValues(tags)) { @@ -651,8 +639,8 @@ export const groupSelectionsPubkeysByUrl = derived(groupSelections, $groupSelect return result }) -export const getSpaceUrlsFromGroupSelections = ($groupSelections: List | undefined) => { - const tags = getListTags($groupSelections) +export const getSpaceUrlsFromGroupList = ($groupLists: List | undefined) => { + const tags = getListTags($groupLists) const urls = getRelayTagValues(tags) for (const tag of getGroupTags(tags)) { @@ -666,13 +654,10 @@ export const getSpaceUrlsFromGroupSelections = ($groupSelections: List | undefin return uniq(urls.map(normalizeRelayUrl)) } -export const getSpaceRoomsFromGroupSelections = ( - url: string, - $groupSelections: List | undefined, -) => { +export const getSpaceRoomsFromGroupList = (url: string, $groupList: List | undefined) => { const rooms: string[] = [] - for (const [_, h, relay] of getGroupTags(getListTags($groupSelections))) { + for (const [_, h, relay] of getGroupTags(getListTags($groupList))) { if (url === relay) { rooms.push(h) } @@ -681,20 +666,20 @@ export const getSpaceRoomsFromGroupSelections = ( return sortBy(roomComparator(url), rooms) } -export const userGroupSelections = makeUserData({ - mapStore: groupSelectionsByPubkey, - loadItem: loadGroupSelections, +export const userGroupList = makeUserData({ + mapStore: groupListsByPubkey, + loadItem: loadGroupList, }) -export const loadUserGroupSelections = makeUserLoader(loadGroupSelections) +export const loadUserGroupList = makeUserLoader(loadGroupList) -export const userSpaceUrls = derived(userGroupSelections, getSpaceUrlsFromGroupSelections) +export const userSpaceUrls = derived(userGroupList, getSpaceUrlsFromGroupLists) export const deriveUserRooms = (url: string) => - derived([userGroupSelections, roomsById], ([$userGroupSelections, $roomsById]) => { + derived([userGroupList, roomsById], ([$userGroupList, $roomsById]) => { const rooms: string[] = [] - for (const h of getSpaceRoomsFromGroupSelections(url, $userGroupSelections)) { + for (const h of getSpaceRoomsFromGroupList(url, $userGroupList)) { if ($roomsById.has(makeRoomId(url, h))) { rooms.push(h) } diff --git a/src/app/core/sync.ts b/src/app/core/sync.ts index 4da1243a..4df67f69 100644 --- a/src/app/core/sync.ts +++ b/src/app/core/sync.ts @@ -25,10 +25,10 @@ import { pubkey, loadRelay, userFollows, - userRelaySelections, - userInboxRelaySelections, - loadRelaySelections, - loadInboxRelaySelections, + userRelayList, + userMessagingRelayList, + loadRelayList, + loadMessagingRelayList, loadBlossomServers, loadFollows, loadMutes, @@ -43,14 +43,14 @@ import { CONTENT_KINDS, INDEXER_RELAYS, loadSettings, - loadGroupSelections, + loadGroupList, userSpaceUrls, - userGroupSelections, + userGroupList, bootstrapPubkeys, decodeRelay, getUrlsForEvent, - getSpaceUrlsFromGroupSelections, - getSpaceRoomsFromGroupSelections, + getSpaceUrlsFromGroupList, + getSpaceRoomsFromGroupList, makeCommentFilter, } from "@app/core/state" import {loadAlerts, loadAlertStatuses} from "@app/core/requests" @@ -173,20 +173,20 @@ const syncUserRoomMembership = (url: string, h: string) => { const syncUserData = () => { const unsubscribersByKey = new Map() - const unsubscribeGroupSelections = userGroupSelections.subscribe($l => { + const unsubscribeGroupList = userGroupList.subscribe($l => { const $pubkey = pubkey.get() if ($pubkey) { const keys = new Set() - for (const url of getSpaceUrlsFromGroupSelections($l)) { + for (const url of getSpaceUrlsFromGroupList($l)) { if (!unsubscribersByKey.has(url)) { unsubscribersByKey.set(url, syncUserSpaceMembership(url)) } keys.add(url) - for (const h of getSpaceRoomsFromGroupSelections(url, $l)) { + for (const h of getSpaceRoomsFromGroupList(url, $l)) { const key = `${url}'${h}` if (!unsubscribersByKey.has(key)) { @@ -206,7 +206,7 @@ const syncUserData = () => { } }) - const unsubscribeSelections = userRelaySelections.subscribe($l => { + const unsubscribeList = userRelayList.subscribe($l => { const $pubkey = pubkey.get() if ($pubkey) { @@ -214,7 +214,7 @@ const syncUserData = () => { loadAlertStatuses($pubkey) loadBlossomServers($pubkey) loadFollows($pubkey) - loadGroupSelections($pubkey) + loadGroupList($pubkey) loadMutes($pubkey) loadProfile($pubkey) loadSettings($pubkey) @@ -228,8 +228,8 @@ const syncUserData = () => { await Promise.all( pubkeys.map(async pk => { - await loadRelaySelections(pk) - await loadGroupSelections(pk) + await loadRelayList(pk) + await loadGroupList(pk) await loadProfile(pk) await loadFollows(pk) await loadMutes(pk) @@ -240,14 +240,14 @@ const syncUserData = () => { const unsubscribePubkey = pubkey.subscribe($pubkey => { if ($pubkey) { - loadRelaySelections($pubkey) + loadRelayList($pubkey) } }) return () => { unsubscribersByKey.forEach(call) - unsubscribeGroupSelections() - unsubscribeSelections() + unsubscribeGroupList() + unsubscribeList() unsubscribeFollows() unsubscribePubkey() } @@ -386,10 +386,10 @@ const syncDMs = () => { unsubscribeAll() } - // If we have a pubkey, refresh our user's relay selections then sync our subscriptions + // If we have a pubkey, refresh our user's relay list then sync our subscriptions if ($pubkey && $shouldUnwrap) { - loadRelaySelections($pubkey) - .then(() => loadInboxRelaySelections($pubkey)) + loadRelayList($pubkey) + .then(() => loadMessagingRelayList($pubkey)) .then($l => subscribeAll($pubkey, getRelayTagValues(getListTags($l)))) } @@ -397,20 +397,20 @@ const syncDMs = () => { }, ) - // When user inbox relays change, update synchronization - const unsubscribeSelections = userInboxRelaySelections.subscribe($userInboxRelaySelections => { + // When user messaging relays change, update synchronization + const unsubscribeList = userMessagingRelayList.subscribe($userMessagingRelayList => { const $pubkey = pubkey.get() const $shouldUnwrap = shouldUnwrap.get() if ($pubkey && $shouldUnwrap) { - subscribeAll($pubkey, getRelayTagValues(getListTags($userInboxRelaySelections))) + subscribeAll($pubkey, getRelayTagValues(getListTags($userMessagingRelayList))) } }) return () => { unsubscribeAll() unsubscribePubkey() - unsubscribeSelections() + unsubscribeList() } } diff --git a/src/app/util/notifications.ts b/src/app/util/notifications.ts index acd2c96a..bd39a854 100644 --- a/src/app/util/notifications.ts +++ b/src/app/util/notifications.ts @@ -20,9 +20,9 @@ import { getUrlsForEvent, repositoryStore, userSettingsValues, - userGroupSelections, - getSpaceUrlsFromGroupSelections, - getSpaceRoomsFromGroupSelections, + userGroupList, + getSpaceUrlsFromGroupList, + getSpaceRoomsFromGroupList, } from "@app/core/state" import {kv} from "@app/core/storage" @@ -44,19 +44,11 @@ export const notifications = derived( throttled( 1000, derived( - [pubkey, checked, chats, userGroupSelections, repositoryStore, getUrlsForEvent, relaysByUrl], + [pubkey, checked, chats, userGroupList, repositoryStore, getUrlsForEvent, relaysByUrl], identity, ), ), - ([ - $pubkey, - $checked, - $chats, - $userGroupSelections, - $repository, - $getUrlsForEvent, - $relaysByUrl, - ]) => { + ([$pubkey, $checked, $chats, $userGroupList, $repository, $getUrlsForEvent, $relaysByUrl]) => { const hasNotification = (path: string, latestEvent: TrustedEvent | undefined) => { if (!latestEvent || latestEvent.pubkey === $pubkey) { return false @@ -95,7 +87,7 @@ export const notifications = derived( const allMessages = $repository.query([{kinds: [MESSAGE, THREAD, ZAP_GOAL, EVENT_TIME]}]) - for (const url of getSpaceUrlsFromGroupSelections($userGroupSelections)) { + for (const url of getSpaceUrlsFromGroupList($userGroupList)) { const spacePath = makeSpacePath(url) const spacePathMobile = spacePath + ":mobile" const goalPath = makeGoalPath(url) @@ -171,7 +163,7 @@ export const notifications = derived( } if (hasNip29($relaysByUrl.get(url))) { - for (const h of getSpaceRoomsFromGroupSelections(url, $userGroupSelections)) { + for (const h of getSpaceRoomsFromGroupList(url, $userGroupList)) { const roomPath = makeRoomPath(url, h) const latestEvent = messages.find(e => e.tags.some(spec(["h", h]))) diff --git a/src/app/util/storage.ts b/src/app/util/storage.ts index beecf20f..59d1690d 100644 --- a/src/app/util/storage.ts +++ b/src/app/util/storage.ts @@ -12,7 +12,7 @@ import { DIRECT_MESSAGE, EVENT_TIME, FOLLOWS, - INBOX_RELAYS, + MESSAGING_RELAYS, MESSAGE, MUTES, PROFILE, @@ -54,7 +54,7 @@ import {isMobile} from "@lib/html" import type {IDBTable} from "@lib/indexeddb" const kinds = { - meta: [PROFILE, FOLLOWS, MUTES, RELAYS, BLOSSOM_SERVERS, INBOX_RELAYS, APP_DATA, ROOMS], + meta: [PROFILE, FOLLOWS, MUTES, RELAYS, BLOSSOM_SERVERS, MESSAGING_RELAYS, APP_DATA, ROOMS], alert: [ALERT_STATUS, ALERT_EMAIL, ALERT_WEB, ALERT_IOS, ALERT_ANDROID], space: [RELAY_ADD_MEMBER, RELAY_REMOVE_MEMBER, RELAY_MEMBERS, RELAY_JOIN, RELAY_LEAVE], room: [ diff --git a/src/routes/discover/+page.svelte b/src/routes/discover/+page.svelte index 86b16697..beb346ca 100644 --- a/src/routes/discover/+page.svelte +++ b/src/routes/discover/+page.svelte @@ -25,9 +25,9 @@ import SpaceCheck from "@app/components/SpaceCheck.svelte" import { bootstrapPubkeys, - loadGroupSelections, - getSpaceUrlsFromGroupSelections, - groupSelectionsPubkeysByUrl, + loadGroupList, + getSpaceUrlsFromGroupList, + groupListsPubkeysByUrl, parseInviteLink, } from "@app/core/state" import {pushModal} from "@app/util/modal" @@ -50,8 +50,8 @@ relays: Router.get().Index().getUrls(), }), ...$bootstrapPubkeys.map(async pubkey => { - const list = await loadGroupSelections(pubkey) - const urls = getSpaceUrlsFromGroupSelections(list) + const list = await loadGroupList(pubkey) + const urls = getSpaceUrlsFromGroupList(list) await Promise.all(urls.map(url => loadRelay(url))) }), @@ -59,13 +59,13 @@ const relaySearch = $derived( createSearch( - $relays.filter(r => $groupSelectionsPubkeysByUrl.has(r.url) && r.url !== inviteData?.url), + $relays.filter(r => $groupListsPubkeysByUrl.has(r.url) && r.url !== inviteData?.url), { getValue: (relay: RelayProfile) => relay.url, sortFn: ({score, item}) => { if (score && score > 0.1) return -score! - const wotScore = $groupSelectionsPubkeysByUrl.get(item.url)!.size + const wotScore = $groupListsPubkeysByUrl.get(item.url)!.size return score ? dec(score) * wotScore : -wotScore }, diff --git a/src/routes/settings/content/+page.svelte b/src/routes/settings/content/+page.svelte index 3f400de4..f303d6c9 100644 --- a/src/routes/settings/content/+page.svelte +++ b/src/routes/settings/content/+page.svelte @@ -9,7 +9,7 @@ BLOSSOM_SERVERS, } from "@welshman/util" import {Router} from "@welshman/router" - import {userMutes, tagPubkey, publishThunk, userBlossomServers} from "@welshman/app" + import {userMuteList, tagPubkey, publishThunk, userBlossomServerList} from "@welshman/app" import {preventDefault} from "@lib/html" import Field from "@lib/components/Field.svelte" import FieldInline from "@lib/components/FieldInline.svelte" @@ -22,8 +22,8 @@ const reset = () => { settings = {...$userSettingsValues} - mutedPubkeys = getPubkeyTagValues(getListTags($userMutes)) - blossomServers = getTagValues("server", getListTags($userBlossomServers)) + mutedPubkeys = getPubkeyTagValues(getListTags($userMuteList)) + blossomServers = getTagValues("server", getListTags($userBlossomServerList)) } const onsubmit = preventDefault(async () => { @@ -43,8 +43,8 @@ }) let settings = $state({...$userSettingsValues}) - let mutedPubkeys = $state(getPubkeyTagValues(getListTags($userMutes))) - let blossomServers = $state(getTagValues("server", getListTags($userBlossomServers))) + let mutedPubkeys = $state(getPubkeyTagValues(getListTags($userMuteList))) + let blossomServers = $state(getTagValues("server", getListTags($userBlossomServerList)))
diff --git a/src/routes/settings/relays/+page.svelte b/src/routes/settings/relays/+page.svelte index a4a2fb99..a3c0bf23 100644 --- a/src/routes/settings/relays/+page.svelte +++ b/src/routes/settings/relays/+page.svelte @@ -1,6 +1,6 @@ @@ -130,19 +130,19 @@

{/snippet}
- {#each $inboxRelayUrls.sort() as url (url)} + {#each $messagingRelayUrls.sort() as url (url)} {:else}

No relays found

{/each} - diff --git a/src/routes/spaces/+page.svelte b/src/routes/spaces/+page.svelte index a6bed2a4..ecf79939 100644 --- a/src/routes/spaces/+page.svelte +++ b/src/routes/spaces/+page.svelte @@ -8,7 +8,7 @@ import PageContent from "@lib/components/PageContent.svelte" import MenuSpacesItem from "@app/components/MenuSpacesItem.svelte" import SpaceAdd from "@app/components/SpaceAdd.svelte" - import {userSpaceUrls, loadUserGroupSelections, PLATFORM_RELAYS} from "@app/core/state" + import {userSpaceUrls, loadUserGroupList, PLATFORM_RELAYS} from "@app/core/state" import {pushModal} from "@app/util/modal" const addSpace = () => pushModal(SpaceAdd) @@ -37,7 +37,7 @@ {#each PLATFORM_RELAYS as url (url)} {:else} - {#await loadUserGroupSelections()} + {#await loadUserGroupList()}
Loading your spaces... diff --git a/src/routes/spaces/[relay]/calendar/[id]/+page.svelte b/src/routes/spaces/[relay]/calendar/[id]/+page.svelte index 25da828c..831f2d48 100644 --- a/src/routes/spaces/[relay]/calendar/[id]/+page.svelte +++ b/src/routes/spaces/[relay]/calendar/[id]/+page.svelte @@ -6,7 +6,7 @@ import {COMMENT, getTagValue} from "@welshman/util" import {request} from "@welshman/net" import {repository} from "@welshman/app" - import {deriveEvents} from "@welshman/store" + import {deriveEventsById, deriveEventsDesc} from "@welshman/store" import AltArrowLeft from "@assets/icons/alt-arrow-left.svg?dataurl" import SortVertical from "@assets/icons/sort-vertical.svg?dataurl" import Reply from "@assets/icons/reply-2.svg?dataurl" @@ -30,7 +30,7 @@ const url = decodeRelay(relay) const event = deriveEvent(id) const filters = [{kinds: [COMMENT], "#E": [id]}] - const replies = deriveEvents(repository, {filters}) + const replies = deriveEventsDesc(deriveEventsById({filters, repository})) const back = () => history.back() diff --git a/src/routes/spaces/[relay]/goals/[id]/+page.svelte b/src/routes/spaces/[relay]/goals/[id]/+page.svelte index 22e5886d..cdda5d65 100644 --- a/src/routes/spaces/[relay]/goals/[id]/+page.svelte +++ b/src/routes/spaces/[relay]/goals/[id]/+page.svelte @@ -6,7 +6,7 @@ import {COMMENT, getTagValue} from "@welshman/util" import {repository} from "@welshman/app" import {request} from "@welshman/net" - import {deriveEvents} from "@welshman/store" + import {deriveEventsById, deriveEventsDesc} from "@welshman/store" import AltArrowLeft from "@assets/icons/alt-arrow-left.svg?dataurl" import SortVertical from "@assets/icons/sort-vertical.svg?dataurl" import Reply from "@assets/icons/reply-2.svg?dataurl" @@ -29,7 +29,7 @@ const url = decodeRelay(relay) const event = deriveEvent(id) const filters = [{kinds: [COMMENT], "#E": [id]}] - const replies = deriveEvents(repository, {filters}) + const replies = deriveEventsDesc(deriveEventsById({repository, filters})) const summary = getTagValue("summary", $event.tags) const back = () => history.back() @@ -98,7 +98,7 @@
{/if} - {#each sortBy(e => e.created_at, $replies).slice(0, showAll ? undefined : 4) as reply (reply.id)} + {#each $replies.slice(0, showAll ? undefined : 4) as reply (reply.id)}
diff --git a/src/routes/spaces/[relay]/threads/[id]/+page.svelte b/src/routes/spaces/[relay]/threads/[id]/+page.svelte index 6714782c..24e68831 100644 --- a/src/routes/spaces/[relay]/threads/[id]/+page.svelte +++ b/src/routes/spaces/[relay]/threads/[id]/+page.svelte @@ -6,7 +6,7 @@ import {COMMENT, getTagValue} from "@welshman/util" import {repository} from "@welshman/app" import {request} from "@welshman/net" - import {deriveEvents} from "@welshman/store" + import {deriveEventsById, deriveEventsDesc} from "@welshman/store" import AltArrowLeft from "@assets/icons/alt-arrow-left.svg?dataurl" import SortVertical from "@assets/icons/sort-vertical.svg?dataurl" import Reply from "@assets/icons/reply-2.svg?dataurl" @@ -28,7 +28,7 @@ const url = decodeRelay(relay) const event = deriveEvent(id) const filters = [{kinds: [COMMENT], "#E": [id]}] - const replies = deriveEvents(repository, {filters}) + const replies = deriveEventsDesc(deriveEventsById({filters, repository})) const back = () => history.back() @@ -95,7 +95,7 @@
{/if} - {#each sortBy(e => e.created_at, $replies).slice(0, showAll ? undefined : 4) as reply (reply.id)} + {#each $replies.slice(0, showAll ? undefined : 4) as reply (reply.id)}