import { h, Component } from 'preact'; import PropTypes from 'prop-types'; import { Header } from './Header'; import { AuthorInfo } from './AuthorInfo'; import { listingPropTypes } from './listingPropTypes'; export class SingleListing extends Component { listingContent = ( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, ) => { return (
); }; listingInline = ( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, ) => { return (
{this.listingContent( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, )}
); }; listingModal = ( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, ) => { return (
{this.listingContent( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, )}
); }; render() { const { listing, currentUserId, onChangeCategory, onOpenModal, isOpen, onAddTag, } = this.props; return isOpen ? this.listingModal( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, ) : this.listingInline( listing, currentUserId, onChangeCategory, onOpenModal, onAddTag, ); } } SingleListing.propTypes = { listing: listingPropTypes.isRequired, onOpenModal: PropTypes.func.isRequired, onChangeCategory: PropTypes.func.isRequired, isOpen: PropTypes.bool.isRequired, currentUserId: PropTypes.number, onAddTag: PropTypes.func.isRequired, }; SingleListing.defaultProps = { currentUserId: null, }; SingleListing.displayName = 'SingleListing';