Use lists for room memberships

This commit is contained in:
Jon Staab
2024-10-08 15:30:18 -07:00
parent a351d9d792
commit 86c7e6f831
9 changed files with 88 additions and 98 deletions
+3 -3
View File
@@ -16,7 +16,7 @@
import SpaceExit from "@app/components/SpaceExit.svelte"
import SpaceJoin from "@app/components/SpaceJoin.svelte"
import RoomCreate from "@app/components/RoomCreate.svelte"
import {userMembership, pullConservatively, roomsByUrl, decodeNRelay, GENERAL, MESSAGE} from "@app/state"
import {getMembershipRoomsByUrl, userMembership, pullConservatively, roomsByUrl, decodeNRelay, GENERAL, MESSAGE} from "@app/state"
import {pushModal} from "@app/modal"
import {makeSpacePath} from "@app/routes"
@@ -48,7 +48,7 @@
let showMenu = false
$: url = decodeNRelay($page.params.nrelay)
$: rooms = sort($userMembership?.roomsByUrl?.get(url) || [])
$: rooms = getMembershipRoomsByUrl(url, $userMembership)
$: otherRooms = ($roomsByUrl.get(url) || []).filter(room => !rooms.concat(GENERAL).includes(room))
onMount(() => {
@@ -74,7 +74,7 @@
<ul
transition:fly
class="menu absolute z-popover mt-2 w-full rounded-box bg-base-100 p-2 shadow-xl">
{#if $userMembership?.roomsByUrl.has(url)}
{#if getMembershipRoomsByUrl(url, $userMembership)}
<li class="text-error">
<Button on:click={leaveSpace}>
<Icon icon="exit" />
@@ -28,6 +28,7 @@
GENERAL,
tagRoom,
MESSAGE,
getMembershipRoomsByUrl,
} from "@app/state"
import {addRoomMembership, removeRoomMembership} from "@app/commands"
@@ -46,8 +47,6 @@
let loading = true
let elements: Element[] = []
$: membership = $userMembership?.roomsByUrl.get(url) || []
$: {
elements = []
@@ -90,7 +89,7 @@
<strong>{room}</strong>
</div>
{#if room !== GENERAL}
{#if membership.includes(room)}
{#if getMembershipRoomsByUrl(url, $userMembership).includes(room)}
<Button class="btn btn-neutral btn-sm" on:click={() => removeRoomMembership(url, room)}>
<Icon icon="arrows-a-logout-2" />
Leave Room