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 ? ( -
+
) : ( {user?.pubkey )} 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();