import { h } from 'preact'; import PropTypes from 'prop-types'; function getCoverImage(imageSrc) { return (
cover
); } function titleArea(previewResponse, version, articleState) { if (version === 'help') { // possibly something different here in future. return ''; } const tagArray = previewResponse.tags || articleState.tagList.split(', '); let tags = ''; if (tagArray.length > 0 && tagArray[0].length > 0) { tags = tagArray.map(tag => { return ( {tag.length > 0 ?
{tag}
: ''}
); }); } let coverImage = ''; if (previewResponse.cover_image && previewResponse.cover_image.length > 0) { coverImage = getCoverImage(previewResponse.cover_image); } else if (articleState.mainImage) { coverImage = getCoverImage(articleState.mainImage); } const previewTitle = previewResponse.title || articleState.title || ''; return (
{coverImage}

44 ? 'articleform_titlepreviewsmall' : '' } > {previewTitle}

profile   {window.currentUser.name}

{tags}
); } const BodyPreview = ({ previewResponse, version, articleState }) => (
{titleArea(previewResponse, version, articleState)}
); const previewResponsePropTypes = PropTypes.shape({ processed_html: PropTypes.string.isRequired, title: PropTypes.string, tags: PropTypes.array, cover_image: PropTypes.string, }); BodyPreview.propTypes = { previewResponse: previewResponsePropTypes.isRequired, version: PropTypes.string.isRequired, articleState: PropTypes.shape({ id: PropTypes.number, title: PropTypes.string, tagList: PropTypes.string, description: PropTypes.string, canonicalUrl: PropTypes.string, series: PropTypes.string, allSeries: PropTypes.arrayOf(PropTypes.string), bodyMarkdown: PropTypes.string, published: PropTypes.bool, previewShowing: PropTypes.bool, helpShowing: PropTypes.bool, previewResponse: previewResponsePropTypes, helpHTML: PropTypes.string, submitting: PropTypes.bool, editing: PropTypes.bool, imageManagementShowing: PropTypes.bool, moreConfigShowing: PropTypes.bool, mainImage: PropTypes.string, organization: PropTypes.shape({ name: PropTypes.string.isRequired, bg_color_hex: PropTypes.string.isRequired, text_color_hex: PropTypes.string.isRequired, profile_image_90: PropTypes.string.isRequired, }), postUnderOrg: PropTypes.bool, errors: PropTypes.any, edited: PropTypes.bool, version: PropTypes.string, }).isRequired, }; export default BodyPreview;