diff --git a/src/containers/load-button.jsx b/src/containers/load-button.jsx index a7b78a638dcf87871ced71752a668beebe153f87..e5ec3915421aa01e828c06ec7cb1c5650d1a07a1 100644 --- a/src/containers/load-button.jsx +++ b/src/containers/load-button.jsx @@ -2,6 +2,7 @@ import bindAll from 'lodash.bindall'; import PropTypes from 'prop-types'; import React from 'react'; import {connect} from 'react-redux'; +import JSZip from 'jszip'; import LoadButtonComponent from '../components/load-button/load-button.jsx'; @@ -16,8 +17,11 @@ class LoadButton extends React.Component { } handleChange (e) { const reader = new FileReader(); - reader.onload = () => this.props.loadProject(reader.result); - reader.readAsText(e.target.files[0]); + reader.onload = () => { + JSZip.loadAsync(reader.result) + .then(zip => this.props.loadProject(zip)); + }; + reader.readAsArrayBuffer(e.target.files[0]); } handleClick () { this.fileInput.click(); @@ -46,7 +50,7 @@ LoadButton.propTypes = { }; const mapStateToProps = state => ({ - loadProject: state.vm.fromJSON.bind(state.vm) + loadProject: state.vm.loadProjectLocal.bind(state.vm) }); export default connect(