Skip to content

Commit

Permalink
Merge pull request #994 from pcottle/beforeUnload
Browse files Browse the repository at this point in the history
Resolves #993 -- warn on before unloading
  • Loading branch information
pcottle committed Aug 8, 2022
2 parents d9fe304 + be58bef commit c67732e
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 2 deletions.
9 changes: 8 additions & 1 deletion src/js/actions/LevelActions.js
Expand Up @@ -18,7 +18,14 @@ var LevelActions = {
AppDispatcher.handleViewAction({
type: ActionTypes.RESET_LEVELS_SOLVED
});
}
},

setIsSolvingLevel: function(isSolvingLevel) {
AppDispatcher.handleViewAction({
type: ActionTypes.SET_IS_SOLVING_LEVEL,
isSolvingLevel: isSolvingLevel,
});
},

};

Expand Down
4 changes: 4 additions & 0 deletions src/js/app/index.js
Expand Up @@ -75,6 +75,10 @@ var init = function() {
window.LocaleStore = LocaleStore;
window.LocaleActions = LocaleActions;
window.intl = intl;

$(window).on('beforeunload', function(e) {
return GlobalStateStore.getIsSolvingLevel() ? 'you have a level in progress' : null;
});
};

var vcsModeRefresh = function(eventData) {
Expand Down
3 changes: 2 additions & 1 deletion src/js/constants/AppConstants.js
Expand Up @@ -32,7 +32,8 @@ module.exports = {
* solve the level, not ask for solution
* or solve it again.
*/
SOLVE_LEVEL: null
SOLVE_LEVEL: null,
SET_IS_SOLVING_LEVEL: null,
}),

PayloadSources: keyMirror({
Expand Down
3 changes: 3 additions & 0 deletions src/js/level/index.js
Expand Up @@ -58,13 +58,15 @@ var Level = Sandbox.extend({
this.startOffCommand();

this.handleOpen(options.deferred);
LevelActions.setIsSolvingLevel(true);
},

getIsGoalExpanded: function() {
return this.isGoalExpanded;
},

handleOpen: function(deferred) {
LevelActions.setIsSolvingLevel(true);
deferred = deferred || Q.defer();

// if there is a multiview in the beginning, open that
Expand Down Expand Up @@ -573,6 +575,7 @@ var Level = Sandbox.extend({
delete this.mainVis;
delete this.goalVis;
delete this.goalCanvasHolder;
LevelActions.setIsSolvingLevel(false);
},

getInstantCommands: function() {
Expand Down
9 changes: 9 additions & 0 deletions src/js/stores/GlobalStateStore.js
Expand Up @@ -10,6 +10,7 @@ var _isAnimating = false;
var _flipTreeY = false;
var _numLevelsSolved = 0;
var _disableLevelInstructions = false;
var _isSolvingLevel = false;

var GlobalStateStore = Object.assign(
{},
Expand All @@ -20,6 +21,10 @@ AppConstants.StoreSubscribePrototype,
return _isAnimating;
},

getIsSolvingLevel: function() {
return _isSolvingLevel;
},

getFlipTreeY: function() {
return _flipTreeY;
},
Expand All @@ -37,6 +42,10 @@ AppConstants.StoreSubscribePrototype,
var shouldInform = false;

switch (action.type) {
case ActionTypes.SET_IS_SOLVING_LEVEL:
_isSolvingLevel = action.isSolvingLevel;
shouldInform = true;
break;
case ActionTypes.CHANGE_IS_ANIMATING:
_isAnimating = action.isAnimating;
shouldInform = true;
Expand Down

0 comments on commit c67732e

Please sign in to comment.