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';