Skip to content

Commit 1602476

Browse files
committed
renamed confirm-replace-hoc to menu-bar-hoc; moved project changed checking there
1 parent 416bc85 commit 1602476

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

src/components/menu-bar/menu-bar.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import LoginDropdown from './login-dropdown.jsx';
2828
import SB3Downloader from '../../containers/sb3-downloader.jsx';
2929
import DeletionRestorer from '../../containers/deletion-restorer.jsx';
3030
import TurboMode from '../../containers/turbo-mode.jsx';
31-
import ConfirmReplaceHOC from './confirm-replace-hoc.jsx';
31+
import MenuBarHOC from '../../containers/menu-bar-hoc.jsx';
3232

3333
import {openTipsLibrary} from '../../reducers/modals';
3434
import {setPlayer} from '../../reducers/mode';
@@ -192,7 +192,7 @@ class MenuBar extends React.Component {
192192
this.props.onRequestCloseFile();
193193
}
194194
handleClickSeeCommunity (waitForUpdate) {
195-
if (this.props.canSave && this.props.projectChanged) { // save before transitioning to project page
195+
if (this.props.shouldSaveBeforeTransition()) { // save before transitioning to project page
196196
this.props.autoUpdateProject();
197197
waitForUpdate(true); // queue the transition to project page
198198
} else {
@@ -705,6 +705,7 @@ MenuBar.propTypes = {
705705
canSave: PropTypes.bool,
706706
canShare: PropTypes.bool,
707707
className: PropTypes.string,
708+
confirmReadyToReplaceProject: PropTypes.func,
708709
editMenuOpen: PropTypes.bool,
709710
enableCommunity: PropTypes.bool,
710711
fileMenuOpen: PropTypes.bool,
@@ -741,6 +742,7 @@ MenuBar.propTypes = {
741742
projectTitle: PropTypes.string,
742743
renderLogin: PropTypes.func,
743744
sessionExists: PropTypes.bool,
745+
shouldSaveBeforeTransition: PropTypes.func,
744746
showComingSoon: PropTypes.bool,
745747
username: PropTypes.string,
746748
vm: PropTypes.instanceOf(VM).isRequired
@@ -794,7 +796,7 @@ const mapDispatchToProps = dispatch => ({
794796

795797
export default compose(
796798
injectIntl,
797-
ConfirmReplaceHOC,
799+
MenuBarHOC,
798800
connect(
799801
mapStateToProps,
800802
mapDispatchToProps

src/components/menu-bar/confirm-replace-hoc.jsx renamed to src/containers/menu-bar-hoc.jsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,26 @@ import PropTypes from 'prop-types';
33
import bindAll from 'lodash.bindall';
44
import React from 'react';
55

6-
const ConfirmReplaceHOC = function (WrappedComponent) {
7-
class ConfirmReplaceProject extends React.PureComponent {
6+
const MenuBarHOC = function (WrappedComponent) {
7+
class MenuBarComponent extends React.PureComponent {
88
constructor (props) {
99
super(props);
1010

1111
bindAll(this, [
12-
'confirmReadyToReplaceProject'
12+
'confirmReadyToReplaceProject',
13+
'shouldSaveBeforeTransition'
1314
]);
1415
}
15-
1616
confirmReadyToReplaceProject (message) {
1717
let readyToReplaceProject = true;
1818
if (this.props.projectChanged && !this.props.canCreateNew) {
1919
readyToReplaceProject = confirm(message); // eslint-disable-line no-alert
2020
}
2121
return readyToReplaceProject;
2222
}
23-
23+
shouldSaveBeforeTransition () {
24+
return (this.props.canSave && this.props.projectChanged);
25+
}
2426
render () {
2527
const {
2628
/* eslint-disable no-unused-vars */
@@ -30,21 +32,23 @@ const ConfirmReplaceHOC = function (WrappedComponent) {
3032
} = this.props;
3133
return (<WrappedComponent
3234
confirmReadyToReplaceProject={this.confirmReadyToReplaceProject}
35+
shouldSaveBeforeTransition={this.shouldSaveBeforeTransition}
3336
{...props}
3437
/>);
3538
}
3639
}
3740

38-
ConfirmReplaceProject.propTypes = {
41+
MenuBarComponent.propTypes = {
3942
canCreateNew: PropTypes.bool,
43+
canSave: PropTypes.bool,
4044
projectChanged: PropTypes.bool
4145
};
4246

4347
const _mapStateToProps = state => ({
4448
projectChanged: state.scratchGui.projectChanged
4549
});
4650

47-
return connect(_mapStateToProps)(ConfirmReplaceProject);
51+
return connect(_mapStateToProps)(MenuBarComponent);
4852
};
4953

50-
export default ConfirmReplaceHOC;
54+
export default MenuBarHOC;

0 commit comments

Comments
 (0)