Add space membership management

This commit is contained in:
Jon Staab
2025-11-13 13:25:34 -08:00
parent 997b223e95
commit d949d58076
16 changed files with 477 additions and 109 deletions
+20 -2
View File
@@ -752,6 +752,24 @@ export const deriveSpaceMembers = (url: string) =>
},
)
export type BannedPubkeyItem = {
pubkey: string
reason: string
}
export const spaceBannedPubkeyItems = new Map<string, BannedPubkeyItem[]>()
export const deriveSpaceBannedPubkeyItems = (url: string) => {
const store = writable(spaceBannedPubkeyItems.get(url) || [])
manageRelay(url, {method: ManagementMethod.ListBannedPubkeys, params: []}).then(res => {
spaceBannedPubkeyItems.set(url, res.result)
store.set(res.result)
})
return store
}
export const deriveRoomMembers = (url: string, h: string) =>
derived(
deriveEventsForUrl(url, [
@@ -806,7 +824,7 @@ export enum MembershipStatus {
Granted,
}
export const deriveUserIsSpaceAdmin = (url: string) => {
export const deriveUserIsSpaceAdmin = memoize((url: string) => {
const store = writable(false)
manageRelay(url, {method: ManagementMethod.SupportedMethods, params: []}).then(res =>
@@ -814,7 +832,7 @@ export const deriveUserIsSpaceAdmin = (url: string) => {
)
return store
}
})
export const deriveUserSpaceMembershipStatus = (url: string) =>
derived(