Skip to content

Commit ad06d38

Browse files
committed
Refactor Nav Props - See processing#824
1 parent 03d7533 commit ad06d38

File tree

2 files changed

+17
-29
lines changed

2 files changed

+17
-29
lines changed

client/components/Nav.jsx

+17-10
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import PropTypes from 'prop-types';
22
import React from 'react';
3-
import { bindActionCreators } from 'redux';
43
import { connect } from 'react-redux';
54
import { withRouter } from 'react-router';
65
import { Link } from 'react-router';
76
import InlineSVG from 'react-inlinesvg';
87
import classNames from 'classnames';
98
import * as IDEActions from '../modules/IDE/actions/ide';
9+
import * as projectActions from '../modules/IDE/actions/project';
10+
import { setAllAccessibleOutput } from '../modules/IDE/actions/preferences';
11+
import { logoutUser } from '../modules/User/actions';
1012

1113
import { metaKeyName, } from '../utils/metaKey';
1214

@@ -600,15 +602,20 @@ Nav.defaultProps = {
600602
cmController: {}
601603
};
602604

603-
function mapDispatchToProps(dispatch) {
604-
return bindActionCreators(
605-
Object.assign(
606-
{},
607-
IDEActions
608-
),
609-
dispatch
610-
);
605+
function mapStateToProps(state) {
606+
return {
607+
project: state.project,
608+
user: state.user,
609+
unsavedChanges: state.ide.unsavedChanges
610+
};
611611
}
612612

613-
export default withRouter(connect(() => ({}), mapDispatchToProps)(Nav));
613+
const mapDispatchToProps = {
614+
...IDEActions,
615+
...projectActions,
616+
logoutUser,
617+
setAllAccessibleOutput
618+
};
619+
620+
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Nav));
614621
export { Nav as NavComponent };

client/modules/IDE/pages/IDEView.jsx

-19
Original file line numberDiff line numberDiff line change
@@ -209,23 +209,8 @@ class IDEView extends React.Component {
209209
</Helmet>
210210
{this.props.toast.isVisible && <Toast />}
211211
<Nav
212-
user={this.props.user}
213-
newProject={this.props.newProject}
214-
saveProject={this.props.saveProject}
215-
autosaveProject={this.props.autosaveProject}
216-
exportProjectAsZip={this.props.exportProjectAsZip}
217-
cloneProject={this.props.cloneProject}
218-
project={this.props.project}
219-
logoutUser={this.props.logoutUser}
220-
startSketch={this.props.startSketch}
221-
stopSketch={this.props.stopSketch}
222-
showShareModal={this.props.showShareModal}
223-
showErrorModal={this.props.showErrorModal}
224-
unsavedChanges={this.props.ide.unsavedChanges}
225212
warnIfUnsavedChanges={this.warnIfUnsavedChanges}
226-
showKeyboardShortcutModal={this.props.showKeyboardShortcutModal}
227213
cmController={this.cmController}
228-
setAllAccessibleOutput={this.props.setAllAccessibleOutput}
229214
/>
230215
<Toolbar
231216
className="Toolbar"
@@ -527,7 +512,6 @@ IDEView.propTypes = {
527512
id: PropTypes.string,
528513
username: PropTypes.string
529514
}).isRequired,
530-
newProject: PropTypes.func.isRequired,
531515
saveProject: PropTypes.func.isRequired,
532516
ide: PropTypes.shape({
533517
isPlaying: PropTypes.bool.isRequired,
@@ -615,22 +599,19 @@ IDEView.propTypes = {
615599
closeNewFileModal: PropTypes.func.isRequired,
616600
expandSidebar: PropTypes.func.isRequired,
617601
collapseSidebar: PropTypes.func.isRequired,
618-
exportProjectAsZip: PropTypes.func.isRequired,
619602
cloneProject: PropTypes.func.isRequired,
620603
expandConsole: PropTypes.func.isRequired,
621604
collapseConsole: PropTypes.func.isRequired,
622605
deleteFile: PropTypes.func.isRequired,
623606
updateFileName: PropTypes.func.isRequired,
624607
showEditProjectName: PropTypes.func.isRequired,
625608
hideEditProjectName: PropTypes.func.isRequired,
626-
logoutUser: PropTypes.func.isRequired,
627609
openProjectOptions: PropTypes.func.isRequired,
628610
closeProjectOptions: PropTypes.func.isRequired,
629611
newFolder: PropTypes.func.isRequired,
630612
closeNewFolderModal: PropTypes.func.isRequired,
631613
createFolder: PropTypes.func.isRequired,
632614
createFile: PropTypes.func.isRequired,
633-
showShareModal: PropTypes.func.isRequired,
634615
closeShareModal: PropTypes.func.isRequired,
635616
showEditorOptions: PropTypes.func.isRequired,
636617
closeEditorOptions: PropTypes.func.isRequired,

0 commit comments

Comments
 (0)