diff --git a/app/(app)/event/[naddr]/_components/AttendeesContainer.tsx b/app/(app)/event/[naddr]/_components/AttendeesContainer.tsx index d4c27ef..f9f1cd5 100644 --- a/app/(app)/event/[naddr]/_components/AttendeesContainer.tsx +++ b/app/(app)/event/[naddr]/_components/AttendeesContainer.tsx @@ -1,13 +1,35 @@ +"use client"; + +import { useEffect, useState } from "react"; import { HiOutlineUserGroup } from "react-icons/hi2"; import AvatarStack from "@/components/ProfileContainers/AvatarStack"; - -import UserRow from "./UserRow"; +import useEvents from "@/lib/hooks/useEvents"; +import { NDKKind } from "@nostr-dev-kit/ndk"; +import { getTagValues, getTagAllValues } from "@/lib/nostr/utils"; +import { removeDuplicates } from "@/lib/utils"; type AttendeesContainerProps = { attendees: string[]; + eventReference: string; }; export default function AttendeesContainer({ - attendees, + attendees: _attendees, + eventReference, }: AttendeesContainerProps) { + const [attendees, setAttendees] = useState(_attendees); + const { events } = useEvents({ + filter: { + kinds: [31925 as NDKKind], + ["#a"]: [eventReference], + }, + }); + + useEffect(() => { + const users = events + .filter((e) => getTagAllValues("l", e.tags).includes("accepted")) + .map((e) => e.pubkey); + + setAttendees(removeDuplicates([..._attendees, ...users])); + }, [events]); return (
diff --git a/app/(app)/event/[naddr]/page.tsx b/app/(app)/event/[naddr]/page.tsx index db40aaf..de38baa 100644 --- a/app/(app)/event/[naddr]/page.tsx +++ b/app/(app)/event/[naddr]/page.tsx @@ -93,7 +93,10 @@ export default function EventPage({ /> )} - +