import React from 'react';
import PropTypes from 'prop-types';
import './ChannelTile.scss';
import Linkify from 'linkifyjs/react';
import colorMXID from '../../../util/colorMXID';
import Text from '../../atoms/text/Text';
import Avatar from '../../atoms/avatar/Avatar';
function linkifyContent(content) {
return {content};
}
function ChannelTile({
avatarSrc, name, id,
inviterName, memberCount, desc, options,
}) {
return (
{name}
{
inviterName !== null
? `Invited by ${inviterName} to ${id}${memberCount === null ? '' : ` • ${memberCount} members`}`
: id + (memberCount === null ? '' : ` • ${memberCount} members`)
}
{
desc !== null && (typeof desc === 'string')
? {linkifyContent(desc)}
: desc
}
{ options !== null && (
{options}
)}
);
}
ChannelTile.defaultProps = {
avatarSrc: null,
inviterName: null,
options: null,
desc: null,
memberCount: null,
};
ChannelTile.propTypes = {
avatarSrc: PropTypes.string,
name: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
inviterName: PropTypes.string,
memberCount: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
]),
desc: PropTypes.node,
options: PropTypes.node,
};
export default ChannelTile;