import { h, Component } from 'preact'; import PropTypes from 'prop-types'; import { generateMainImage } from '../actions'; export default class ImageManagement extends Component { constructor(props) { super(props); this.state = { insertionImageUrl: null, uploadError: false, uploadErrorMessage: null, }; } handleMainImageUpload = e => { e.preventDefault(); this.clearUploadError(); const payload = { image: e.target.files, wrap_cloudinary: true }; const { onMainImageUrlChange } = this.props; generateMainImage(payload, onMainImageUrlChange, this.onUploadError); }; handleInsertionImageUpload = e => { this.clearUploadError(); const payload = { image: e.target.files }; generateMainImage( payload, this.handleInsertImageUploadSuccess, this.onUploadError, ); }; handleInsertImageUploadSuccess = response => { this.setState({ insertionImageUrl: response.link, }); }; triggerMainImageRemoval = e => { e.preventDefault(); const { onMainImageUrlChange } = this.props; onMainImageUrlChange({ link: null, }); }; clearUploadError = () => { this.setState({ uploadError: false, uploadErrorMessage: null, }); }; onUploadError = error => { this.setState({ insertionImageUrl: null, uploadError: true, uploadErrorMessage: error.message, }); }; render() { const { onExit, mainImage, version } = this.props; const { insertionImageUrl, uploadError, uploadErrorMessage } = this.state; let mainImageArea; if (mainImage) { mainImageArea = (
To add a cover image for the post, add cover_image: direct_url_to_image.jpg to the frontmatter