import { h, Component } from 'preact'; import PropTypes from 'prop-types'; import Article from './article'; import ChannelRequest from './channelRequest'; import RequestManager from './RequestManager/RequestManager'; import ChatChannelSettings from './ChatChannelSettings/ChatChannelSettings'; import Draw from './draw'; import ReportAbuse from './ReportAbuse'; const smartSvgIcon = (content, d) => ( ); export default class Content extends Component { static propTypes = { resource: PropTypes.shape({ data: PropTypes.any, type_of: PropTypes.string.isRequired, handleRequestRejection: PropTypes.func, handleRequestApproval: PropTypes.func, handleJoiningRequest: PropTypes.func, activeMembershipId: PropTypes.func, sendCanvasImage: PropTypes.func, }).isRequired, fullscreen: PropTypes.bool.isRequired, onTriggerContent: PropTypes.func.isRequired, updateRequestCount: PropTypes.func.isRequired, closeReportAbuseForm: PropTypes.func.isRequired, }; render() { const { onTriggerContent, fullscreen, resource, closeReportAbuseForm, } = this.props; if (!resource) { return ''; } return ( // TODO: A button (role="button") cannot contain other interactive elements, i.e. buttons. // TODO: These should have key click events as well. ); } } function Display({ resource, closeReportAbuseForm }) { switch (resource.type_of) { case 'loading-user': return
; case 'article': return
; case 'draw': return ; case 'channel-request': return ( ); case 'channel-request-manager': return ( ); case 'chat-channel-setting': return ( ); case 'message-report-abuse': return ( ); default: return null; } }