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;