import React, { FC, useState } from 'react' import './MeetingMessage.css' import { format } from 'timeago.js' import Avatar from '../Avatar/Avatar' import Dropdown from '../Dropdown/Dropdown' import classNames from 'classnames' import { IMeetingMessageProps, MeetingMessageEvent } from '../type' import { HugeiconsIcon } from '@hugeicons/react'; // @ts-ignore import { Calendar04Icon, ArrowDown01Icon, ArrowRight01Icon, Video01Icon, MessageMultiple01Icon, MoreHorizontalIcon } from '@hugeicons/core-free-icons'; const MeetingMessage: FC = ({ date, dateString, title, subject, collapseTitle, moreItems, participants, dataSource, onClick, onMeetingTitleClick, onMeetingVideoLinkClick, onMeetingMoreSelect, ...props }) => { const [toogle, setToogle] = useState(false) const PARTICIPANT_LIMIT = props.participantsLimit const dateText = dateString ? dateString : date && format(date) const _onMeetingLinkClick: MeetingMessageEvent = (item, index, event) => { if (onMeetingTitleClick instanceof Function) onMeetingTitleClick(item, index, event) } const _onMeetingVideoLinkClick: MeetingMessageEvent = (item, index, event) => { if (onMeetingVideoLinkClick instanceof Function) onMeetingVideoLinkClick(item, index, event) } const toggleClick = () => { setToogle(!toogle) } return (
{subject || 'Unknown Meeting'}
{title} {dateText}
{onMeetingMoreSelect && moreItems && moreItems.length > 0 && (
, size: 24, }, }} items={moreItems} onSelect={onMeetingMoreSelect} />
)}
{toogle === true ? (
{collapseTitle}
) : (
{participants ?.slice(0, PARTICIPANT_LIMIT) .map(x => x.title || 'Unknow') .join(', ')} {participants && PARTICIPANT_LIMIT && participants.length > PARTICIPANT_LIMIT && `, +${participants.length - PARTICIPANT_LIMIT}`}
)}
{dataSource && dataSource.map((x, i) => { return (
{!x.event && (
{x.avatar ? : }
) => _onMeetingLinkClick(x, i, e)} > {x.title}
{x.dateString ? x.dateString : x.date && x.date && format(x.date)}
{x.message}
)} {x.event && (
{x.event.title}
{x.dateString ? x.dateString : x.date && format(x.date)}
{
{x.event.avatars && // x.event.avatars.slice(0, x.event.avatarsLimit).map((x, i) => x instanceof Avatar ? x : ( x.event.avatars.slice(0, x.event.avatarsLimit).map((x, i) => )} {x.event.avatars && x.event.avatarsLimit && x.event.avatars.length > x.event.avatarsLimit && (
avatar.title) .join(',') .toString()} > {'+' + (x.event.avatars.length - x.event.avatarsLimit)}
)}
}
{x.record && (
) => _onMeetingVideoLinkClick(x, i, e)} className='rce-mtmg-call-avatars' >
{x.record.time}
{x.record.title}
{x.record.savedBy}
)}
)}
) })}
) } export default MeetingMessage