diff --git a/src/app/channel/components/member.tsx b/src/app/channel/components/member.tsx
index eab4a9e3..615ff8f9 100644
--- a/src/app/channel/components/member.tsx
+++ b/src/app/channel/components/member.tsx
@@ -8,12 +8,12 @@ export function Member({ pubkey }: { pubkey: string }) {
return (
<>
{isError || isLoading ? (
-
+
) : (
)}
>
diff --git a/src/app/channel/components/members.tsx b/src/app/channel/components/members.tsx
index ce7b9630..1f3e8ac1 100644
--- a/src/app/channel/components/members.tsx
+++ b/src/app/channel/components/members.tsx
@@ -1,13 +1,27 @@
import { Member } from "@app/channel/components/member";
-import { useChannelMessages } from "@stores/channels";
-import { useEffect } from "react";
+import { getChannelUsers } from "@libs/storage";
+import useSWR from "swr";
+
+const fetcher = ([, id]) => getChannelUsers(id);
+
+export function ChannelMembers({ id }: { id: string }) {
+ const { data, isLoading }: any = useSWR(["channel-members", id], fetcher);
-export function ChannelMembers() {
return (
-
- {[].map((member) => (
-
- ))}
+
+
+ Members
+
+
+ {isLoading &&
Loading...
}
+ {!data ? (
+
Loading...
+ ) : (
+ data.map((member: { pubkey: string }) => (
+
+ ))
+ )}
+
);
}
diff --git a/src/app/channel/pages/index.page.tsx b/src/app/channel/pages/index.page.tsx
index 0fdaf82a..c7b4b4d1 100644
--- a/src/app/channel/pages/index.page.tsx
+++ b/src/app/channel/pages/index.page.tsx
@@ -112,7 +112,7 @@ export function Page() {
/>
-
+
diff --git a/src/libs/storage.tsx b/src/libs/storage.tsx
index 0c0a3bdc..70fa511a 100644
--- a/src/libs/storage.tsx
+++ b/src/libs/storage.tsx
@@ -328,6 +328,14 @@ export async function getChannelMessages(channel_id: string) {
);
}
+// get channel users
+export async function getChannelUsers(channel_id: string) {
+ const db = await connect();
+ return await db.select(
+ `SELECT DISTINCT pubkey FROM channel_messages WHERE channel_id = "${channel_id}";`,
+ );
+}
+
// get all chats by pubkey
export async function getChatsByPubkey(pubkey: string) {
const db = await connect();