import {faUsersCog} from "@fortawesome/free-solid-svg-icons" import {FontAwesomeIcon} from "@fortawesome/react-fontawesome" import {Box, Heading, Idiomatic, ListUnordered, UAnnotation} from "@steffo/bluelib-react" import * as React from "react" import {useAuthorizationContext} from "../../contexts/authorization" import {useCacheContext} from "../../contexts/cache" import {useGroupContext} from "../../contexts/group" export function GroupMembersBox(): JSX.Element | null { const authorization = useAuthorizationContext() const cache = useCacheContext() const group = useGroupContext() if(!cache) { return null } if(!cache.users) { return null } if(!group) { return null } const trueMembers = [...new Set([group.value.owner, ...group.value.members])] const users = trueMembers.map((id, index) => { const user = cache.getUserById(id) if(!user) { return null } const username = id === authorization?.state.user?.id ? {user.value.username} : user.value.username return ( {username} ) }) return ( Members of {group.value.name} {users} ) }