import { Card, Container, Image } from "react-bootstrap"; import "./Group.css"; import EditModal from "../EditModals/EditModal"; import { useEffect, useState } from "react"; import EditBioForm from "../Forms/Bio/BioForm"; import { faPen } from "@fortawesome/free-solid-svg-icons"; import EditButton from "../Buttons/EditButton/EditButton"; import LivestreamPlayer from "../LivestreamPlayer/LivestreamPlayer"; import cld from "../Cld/CloudinaryConfig"; export class GroupObj { id: number; name: string; bio: string; livestream_id: string; livestream_program_cld_id?: string; constructor( id: number, name: string, bio: string, livestream_id: string, livestream_program_cld_id?: string, ) { this.id = id; this.name = name; this.bio = bio; this.livestream_id = livestream_id; this.livestream_program_cld_id = livestream_program_cld_id; } } interface GroupProps { group?: GroupObj; onBioChange: () => void; setGroup: React.Dispatch>; token: string; } function Group(props: GroupProps) { const [modalShow, setModalShow] = useState(false); const [programId, setProgramId] = useState(undefined); const [programUrl, setProgramUrl] = useState(undefined); const group = props.group; useEffect(() => { if (group) { setProgramId(group.livestream_program_cld_id); } if (programId) { setProgramUrl(cld.image(programId).toURL()); } }, [group, programId]); if (!group) { return null; } const EditTitle = `Edit ${group.name}'s Bio`; const EditIcon = ( setModalShow(false)} title={EditTitle} entity={group} form={ } /> ); return (

{group.name}

{group.livestream_id && ( )} {group.livestream_id && group.livestream_program_cld_id && ( A of the current livestream )} {props.token && EditIcon} {group.bio}
); } export default Group;