import React from 'react'; import PropTypes from 'prop-types'; import * as actions from 'src/js/actions/index.js'; import { connect } from 'react-redux'; import { currentFileName } from 'src/js/reducers/index.js'; import textMarkup from 'src/jss/textMarkup.js'; import injectSheet from 'react-jss'; import { reduxForm, Field, startSubmit, formValueSelector } from 'redux-form'; import { formPromiseWrapper } from 'src/js/utils/formUtils.js'; import { TextField } from 'redux-form-material-ui'; import RaisedButton from 'material-ui/RaisedButton'; import { AUTO_FOCUS_TEXT_FIELDS } from 'src/js/constants/general.js'; import Dialog from 'material-ui/Dialog'; import FlatButton from 'material-ui/FlatButton'; // import createDebug from 'debug'; // const debug = createDebug('d3d:popup:save'); const style = { ...textMarkup }; const onSubmit = async (values, dispatch, props) => { await formPromiseWrapper(props.save(values.fileName)); props.onClose(); }; class Save extends React.Component { static propTypes = { classes: PropTypes.objectOf(PropTypes.string), save: PropTypes.func.isRequired, submit: PropTypes.func.isRequired, handleSubmit: PropTypes.func, pristine: PropTypes.bool, downloadCurrentSketch: PropTypes.func.isRequired, fileName: PropTypes.string.isRequired, submitting: PropTypes.bool, invalid: PropTypes.bool, error: PropTypes.object, onClose: PropTypes.func.isRequired }; render() { const { classes, handleSubmit, submitting, invalid, error, onClose, submit, save, downloadCurrentSketch, fileName } = this.props; return ( , downloadCurrentSketch(fileName)} />, ]} onRequestClose={onClose} >

Save

Your doodle will be saved in the local storage of your web browser. Make sure to make a backup (see export menu) of your doodles every once in a while.

{error &&

error

}
); } } const formName = 'save'; const selector = formValueSelector(formName); export default connect(state => ({ fileName: selector(state, "fileName"), initialValues: { fileName: currentFileName(state) || '' } }), (dispatch) => ({ downloadCurrentSketch: (fileName) => dispatch(actions.files.downloadCurrentSketch(fileName)), submit: () => dispatch(startSubmit(formName)), save: (fileName) => dispatch(actions.files.saveFile(fileName)), onClose: () => dispatch(actions.router.push('/')) }))(reduxForm({ form: formName, onSubmit })(injectSheet(style)(Save)));