Refactor: use relay-provided member lists as source of truth #191
@@ -20,7 +20,7 @@
|
||||
import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte"
|
||||
import {pushToast} from "@app/util/toast"
|
||||
import {pushModal} from "@app/util/modal"
|
||||
import {deriveRoom, getSpaceMembers} from "@app/core/state"
|
||||
import {deriveRoom, deriveSpaceMembers} from "@app/core/state"
|
||||
import {addRoomMembers} from "@app/core/commands"
|
||||
|
||||
interface Props {
|
||||
@@ -31,7 +31,7 @@
|
||||
const {url, h}: Props = $props()
|
||||
|
||||
const room = deriveRoom(url, h)
|
||||
const spaceMembers = getSpaceMembers(url)
|
||||
const spaceMembers = deriveSpaceMembers(url)
|
||||
|
||||
const back = () => history.back()
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
import SpaceMembersAdd from "@app/components/SpaceMembersAdd.svelte"
|
||||
import SpaceMembersBanned from "@app/components/SpaceMembersBanned.svelte"
|
||||
import {
|
||||
getSpaceMembers,
|
||||
deriveSpaceMembers,
|
||||
deriveSpaceBannedPubkeyItems,
|
||||
deriveUserIsSpaceAdmin,
|
||||
deriveSupportedMethods,
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
const {url}: Props = $props()
|
||||
|
||||
const members = getSpaceMembers(url)
|
||||
const members = deriveSpaceMembers(url)
|
||||
const bans = deriveSpaceBannedPubkeyItems(url)
|
||||
const userIsAdmin = deriveUserIsSpaceAdmin(url)
|
||||
const supportedMethods = deriveSupportedMethods(url)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
import {
|
||||
ENABLE_ZAPS,
|
||||
CONTENT_KINDS,
|
||||
getSpaceMembers,
|
||||
deriveSpaceMembers,
|
||||
deriveUserRooms,
|
||||
deriveOtherRooms,
|
||||
deriveOtherVoiceRooms,
|
||||
@@ -76,7 +76,7 @@
|
||||
const userRooms = deriveUserRooms(url)
|
||||
const otherRooms = deriveOtherRooms(url)
|
||||
const otherVoiceRooms = deriveOtherVoiceRooms(url)
|
||||
const members = getSpaceMembers(url)
|
||||
const members = deriveSpaceMembers(url)
|
||||
const userIsAdmin = deriveUserIsSpaceAdmin(url)
|
||||
const actionItems = deriveSpaceActionItems(url)
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ import {
|
||||
stripPrefix,
|
||||
relaysMostlyRestricted,
|
||||
deriveSocket,
|
||||
getSpaceMembers,
|
||||
deriveSpaceMembers,
|
||||
} from "@app/core/state"
|
||||
|
||||
// Utils
|
||||
@@ -765,7 +765,7 @@ export const addSpaceMembers = async (
|
||||
url: string,
|
||||
pubkeys: string[],
|
||||
): Promise<string | undefined> => {
|
||||
const spaceMembers = get(getSpaceMembers(url))
|
||||
const spaceMembers = get(deriveSpaceMembers(url))
|
||||
|
||||
const results = await Promise.all(
|
||||
pubkeys
|
||||
|
||||
@@ -808,7 +808,7 @@ export const deriveOtherRooms = (url: string) =>
|
||||
|
||||
// Space/room memberships
|
||||
|
||||
|
hodlbod marked this conversation as resolved
Outdated
|
||||
export const getSpaceMembers = (url: string) =>
|
||||
export const deriveSpaceMembers = (url: string) =>
|
||||
|
hodlbod marked this conversation as resolved
Outdated
hodlbod
commented
This should be renamed to deriveSpaceMembers since it returns a svelte store, not the value itself. This should be renamed to deriveSpaceMembers since it returns a svelte store, not the value itself.
|
||||
derived(deriveRelaySignedEvents(url, [{kinds: [RELAY_MEMBERS]}]), ([event]) =>
|
||||
uniq(getTagValues("member", event?.tags ?? [])),
|
||||
)
|
||||
|
||||
@@ -28,7 +28,13 @@ import {RoomReferenceExtension} from "@app/editor/RoomReferenceExtension"
|
||||
import RoomSuggestion from "@app/editor/RoomSuggestion.svelte"
|
||||
import {NativeClipboardPasteExtension} from "@app/editor/clipboard"
|
||||
import {uploadFile} from "@app/core/commands"
|
||||
import {getSpaceMembers, makeRoomId, splitRoomId, userSpaceUrls, roomsByUrl} from "@app/core/state"
|
||||
import {
|
||||
deriveSpaceMembers,
|
||||
makeRoomId,
|
||||
splitRoomId,
|
||||
userSpaceUrls,
|
||||
roomsByUrl,
|
||||
} from "@app/core/state"
|
||||
import {pushToast} from "@app/util/toast"
|
||||
|
||||
export const makeEditor = async ({
|
||||
@@ -58,7 +64,7 @@ export const makeEditor = async ({
|
||||
[
|
||||
throttled(800, profiles),
|
||||
throttled(800, handlesByNip05),
|
||||
throttled(800, getSpaceMembers(url || "")),
|
||||
throttled(800, deriveSpaceMembers(url || "")),
|
||||
|
hodlbod
commented
Remove the comment Remove the comment
|
||||
],
|
||||
([$profiles, $handlesByNip05, $spaceMembers]) => {
|
||||
// Remove invalid nip05's from profiles
|
||||
|
||||
Reference in New Issue
Block a user
Let's just keep calling this
getSpaceMembers. I was thinking of using the list directly, but it's more convenient to return the uniqe list of pubkeys. However, you might change the body to:Same thing in deriveRoomMemberList (which should be deriveRoomMembers).