/* * This file is part of ORY Editor. * * ORY Editor is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ORY Editor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with ORY Editor. If not, see . * * @license LGPL-3.0 * @copyright 2016-2018 Aeneas Rekkas * @author Aeneas Rekkas * */ import * as React from 'react'; import { ImageLoaded, ImageUploaded } from 'ory-editor-ui/lib/ImageUpload'; import { ImageProps } from '../types/component'; import { ImageState } from './../types/state'; type StateType = { imagePreview?: ImageLoaded; }; class Form extends React.Component { constructor(props: ImageProps) { super(props); this.state = {}; } handleChange = ( e: React.ChangeEvent ) => { const target = e.target; if (target instanceof HTMLInputElement) { let change: Partial = {}; if (target.name === 'target') { if (target.checked) { change.target = '_blank'; // noopener is safer but not supported in IE, so noreferrer adds some security change.rel = 'noreferrer noopener'; } else { change.target = null; change.rel = null; } } else { change[target.name] = target.value; } this.props.onChange(change); return; } } handleImageLoaded = (image: ImageLoaded) => this.setState({ imagePreview: image }) handleImageUploaded = (resp: ImageUploaded) => { this.setState({ imagePreview: undefined }); this.props.onChange({ src: resp.url }); } render() { const { Controls } = this.props; return ( ); } } export default Form;