63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import * as actions from 'src/js/actions/index.js';
|
|
import { connect } from 'react-redux';
|
|
// import Gallery from 'doodle3d-user/components/Gallery.js';
|
|
import JSONToSketchData from '@doodle3d/doodle3d-core/lib/shape/JSONToSketchData';
|
|
import { blobToJSON } from '@doodle3d/doodle3d-core/lib/utils/binaryUtils.js';
|
|
// import createDebug from 'debug';
|
|
// const debug = createDebug('d3d:popup:addImage');
|
|
import SignUpPay from 'src/js/components/SignUpPay.js';
|
|
|
|
class AddImage extends React.Component {
|
|
|
|
static propTypes = {
|
|
addImage: PropTypes.func.isRequired,
|
|
routes: PropTypes.array.isRequired,
|
|
route: PropTypes.object.isRequired,
|
|
onOpen: PropTypes.func.isRequired,
|
|
onClose: PropTypes.func.isRequired
|
|
};
|
|
onFileChange = (event) => {
|
|
const { addImage, onClose } = this.props;
|
|
const input = event.target;
|
|
|
|
// there is a file selected?
|
|
if (!input.files || !input.files[0]) return;
|
|
const file = input.files[0];
|
|
addImage(file).then(onClose);
|
|
};
|
|
onSubmit = (event) => {
|
|
event.preventDefault();
|
|
};
|
|
render() {
|
|
const { onOpen, onClose } = this.props;
|
|
return (
|
|
<SignUpPay onClose={onClose}>
|
|
<h2>Add Image</h2>
|
|
<form onSubmit={this.onSubmit}>
|
|
<input type="file"
|
|
accept="image/*"
|
|
required
|
|
onChange={this.onFileChange}
|
|
/>
|
|
</form>
|
|
<h2>Import Sketch</h2>
|
|
</SignUpPay>
|
|
);
|
|
}
|
|
}
|
|
// <Gallery onOpen={onOpen} />
|
|
|
|
export default connect(null, dispatch => ({
|
|
addImage: () => dispatch(actions.sketcher.addImage),
|
|
onClose: () => dispatch(actions.router.push(`/`)),
|
|
onOpen: async (doc) => {
|
|
const { _attachments } = doc;
|
|
|
|
const data = await JSONToSketchData(await blobToJSON(_attachments.sketch.data));
|
|
dispatch(actions.sketcher.openSketch({ data }));
|
|
dispatch(actions.router.push(''));
|
|
}
|
|
}))(AddImage);
|