diff --git a/src/app/components/MenuSpace.svelte b/src/app/components/MenuSpace.svelte
index 5e8015f9..6f9d3daa 100644
--- a/src/app/components/MenuSpace.svelte
+++ b/src/app/components/MenuSpace.svelte
@@ -14,7 +14,6 @@
import SpaceJoin from "@app/components/SpaceJoin.svelte"
import ProfileList from "@app/components/ProfileList.svelte"
import RoomCreate from "@app/components/RoomCreate.svelte"
- import ChannelName from "@app/components/ChannelName.svelte"
import MenuSpaceRoomItem from "@app/components/MenuSpaceRoomItem.svelte"
import {
getMembershipUrls,
@@ -121,7 +120,7 @@
Your Rooms
{#each $userRooms as room, i (room)}
-
+
{/each}
{#if $otherRooms.length > 0}
@@ -134,12 +133,7 @@
{/if}
{#each $otherRooms as room, i (room)}
-
-
-
-
-
-
+
{/each}
diff --git a/src/app/components/MenuSpaceRoomItem.svelte b/src/app/components/MenuSpaceRoomItem.svelte
index c8b98942..fd35fbcb 100644
--- a/src/app/components/MenuSpaceRoomItem.svelte
+++ b/src/app/components/MenuSpaceRoomItem.svelte
@@ -1,19 +1,29 @@
-
+ {#if channelIsLocked($channel)}
+
+ {:else}
+
+ {/if}
diff --git a/src/app/components/ThunkStatus.svelte b/src/app/components/ThunkStatus.svelte
index 4ced6578..8926270f 100644
--- a/src/app/components/ThunkStatus.svelte
+++ b/src/app/components/ThunkStatus.svelte
@@ -50,9 +50,9 @@
component={ThunkStatusDetail}
props={{url, message, status, retry}}
params={{interactive: true}}>
-
+
- Failed to send!
+ Failed to send!
{:else if canCancel || isPending}
diff --git a/src/app/notifications.ts b/src/app/notifications.ts
index 3e8b9f6c..84c01ee6 100644
--- a/src/app/notifications.ts
+++ b/src/app/notifications.ts
@@ -12,6 +12,8 @@ import {LEGACY_THREAD, deriveEventsForUrl, getMembershipUrls, userMembership} fr
export const checked = writable>({})
+checked.subscribe(v => console.trace("======", v))
+
export const deriveChecked = (key: string) => derived(checked, prop(key))
export const setChecked = (key: string, ts = now()) =>
diff --git a/src/app/state.ts b/src/app/state.ts
index 45a9c2af..d4f053e5 100644
--- a/src/app/state.ts
+++ b/src/app/state.ts
@@ -561,8 +561,8 @@ export const channelsById = withGetter(
}
channel.meta = {
- access: meta.public ? "public" : "private",
- membership: meta.open ? "open" : "closed",
+ access: meta.private ? "private" : "public",
+ membership: meta.closed ? "closed" : "open",
picture: meta.picture,
about: meta.about,
}
@@ -604,6 +604,9 @@ export const displayChannel = (url: string, room: string) => {
export const roomComparator = (url: string) => (room: string) =>
displayChannel(url, room).toLowerCase()
+export const channelIsLocked = (channel?: Channel) =>
+ channel?.meta?.access === "private" && channel?.meta?.membership === "closed"
+
// User stuff
export const userSettings = withGetter(
diff --git a/src/assets/icons/Lock.svg b/src/assets/icons/Lock.svg
new file mode 100644
index 00000000..7625e53e
--- /dev/null
+++ b/src/assets/icons/Lock.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/lib/components/Icon.svelte b/src/lib/components/Icon.svelte
index 165c5b56..af86eae1 100644
--- a/src/lib/components/Icon.svelte
+++ b/src/lib/components/Icon.svelte
@@ -51,6 +51,7 @@
import KeyMinimalisticSquare3 from "@assets/icons/Key Minimalistic Square 3.svg?dataurl"
import Letter from "@assets/icons/Letter.svg?dataurl"
import LinkRound from "@assets/icons/Link Round.svg?dataurl"
+ import Lock from "@assets/icons/Lock.svg?dataurl"
import Login from "@assets/icons/Login.svg?dataurl"
import Login2 from "@assets/icons/Login 2.svg?dataurl"
import Magnifer from "@assets/icons/Magnifer.svg?dataurl"
@@ -133,6 +134,7 @@
letter: Letter,
"link-round": LinkRound,
login: Login,
+ lock: Lock,
"login-2": Login2,
magnifer: Magnifer,
mailbox: Mailbox,
diff --git a/src/routes/spaces/[relay]/+page.svelte b/src/routes/spaces/[relay]/+page.svelte
index 6ca114b1..cf978fa1 100644
--- a/src/routes/spaces/[relay]/+page.svelte
+++ b/src/routes/spaces/[relay]/+page.svelte
@@ -10,7 +10,14 @@
import ChannelName from "@app/components/ChannelName.svelte"
import RelayName from "@app/components/RelayName.svelte"
import RelayDescription from "@app/components/RelayDescription.svelte"
- import {decodeRelay, deriveUserRooms, deriveOtherRooms} from "@app/state"
+ import {
+ decodeRelay,
+ channelIsLocked,
+ makeChannelId,
+ channelsById,
+ deriveUserRooms,
+ deriveOtherRooms,
+ } from "@app/state"
import {makeChatPath, makeRoomPath, makeSpacePath} from "@app/routes"
const url = decodeRelay($page.params.relay)
@@ -98,7 +105,11 @@
-
+ {#if channelIsLocked($channelsById.get(makeChannelId(url, room)))}
+
+ {:else}
+
+ {/if}
@@ -108,7 +119,11 @@
-
+ {#if channelIsLocked($channelsById.get(makeChannelId(url, room)))}
+
+ {:else}
+
+ {/if}