diff --git a/client.js b/client.js
index 94d493d..0017390 100644
--- a/client.js
+++ b/client.js
@@ -61,9 +61,6 @@ const plugins = [
},
{
register: require('./src/plugins/notifications')
- },
- {
- register: require('./src/plugins/overlays')
}
];
diff --git a/src/constants/overlay-states.js b/src/constants/overlay-states.js
deleted file mode 100644
index 79068ee..0000000
--- a/src/constants/overlay-states.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const overlayStates = {
- NO_OVERLAY: 'NO_OVERLAY',
- HELP_OVERLAY: 'HELP_OVERLAY',
- SAVE_OVERLAY: 'SAVE_OVERLAY',
- DOWNLOAD_OVERLAY: 'DOWNLOAD_OVERLAY',
- PROJECTS_OVERLAY: 'PROJECTS_OVERLAY',
- OVERWRITE_OVERLAY: 'OVERWRITE_OVERLAY',
- NEW_VERSION_OVERLAY: 'NEW_VERSION_OVERLAY',
- DELETE_FILE_OVERLAY: 'DELETE_FILE_OVERLAY',
- SAVE_ON_CHANGE_OVERLAY: 'SAVE_ON_CHANGE_OVERLAY',
- DELETE_PROJECT_OVERLAY: 'DELETE_PROJECT_OVERLAY'
-};
-
-module.exports = overlayStates;
diff --git a/src/creators/hide-overlay.js b/src/creators/hide-overlay.js
deleted file mode 100644
index edba324..0000000
--- a/src/creators/hide-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- HIDE_OVERLAY
-} = require('../constants/action-types');
-
-const {
- NO_OVERLAY
-} = require('../constants/overlay-states');
-
-function hideOverlay(){
- return {
- type: HIDE_OVERLAY,
- payload: {
- state: NO_OVERLAY
- }
- };
-}
-
-module.exports = hideOverlay;
diff --git a/src/creators/index.js b/src/creators/index.js
index 068dfc4..b0496d2 100644
--- a/src/creators/index.js
+++ b/src/creators/index.js
@@ -3,16 +3,6 @@
const creators = {
// overlay creators
deleteProjectConfirm: require('./delete-project-confirm'),
- showDeleteFileOverlay: require('./show-delete-file-overlay'),
- showDeleteProjectOverlay: require('./show-delete-project-overlay'),
- showDownloadOverlay: require('./show-download-overlay'),
- showProjectsOverlay: require('./show-projects-overlay'),
- showOverwriteOverlay: require('./show-overwrite-overlay'),
- showNewVersionOverlay: require('./show-new-version-overlay'),
- showSaveOverlay: require('./show-save-overlay'),
- showSaveOnChangeOverlay: require('./show-save-on-change-overlay'),
- showHelpOverlay: require('./show-help-overlay'),
- hideOverlay: require('./hide-overlay'),
// terminal creators
rxOn: require('./rx-on'),
rxOff: require('./rx-off'),
diff --git a/src/creators/show-delete-file-overlay.js b/src/creators/show-delete-file-overlay.js
deleted file mode 100644
index fea4d96..0000000
--- a/src/creators/show-delete-file-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- DELETE_FILE_OVERLAY
-} = require('../constants/overlay-states');
-
-function showDeleteFileOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: DELETE_FILE_OVERLAY
- }
- };
-}
-
-module.exports = showDeleteFileOverlay;
diff --git a/src/creators/show-delete-project-overlay.js b/src/creators/show-delete-project-overlay.js
deleted file mode 100644
index cca1d3a..0000000
--- a/src/creators/show-delete-project-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- DELETE_PROJECT_OVERLAY
-} = require('../constants/overlay-states');
-
-function showDeleteProjectOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: DELETE_PROJECT_OVERLAY
- }
- };
-}
-
-module.exports = showDeleteProjectOverlay;
diff --git a/src/creators/show-download-overlay.js b/src/creators/show-download-overlay.js
deleted file mode 100644
index 26a8242..0000000
--- a/src/creators/show-download-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- DOWNLOAD_OVERLAY
-} = require('../constants/overlay-states');
-
-function showDownloadOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: DOWNLOAD_OVERLAY
- }
- };
-}
-
-module.exports = showDownloadOverlay;
diff --git a/src/creators/show-help-overlay.js b/src/creators/show-help-overlay.js
deleted file mode 100644
index 5d14f08..0000000
--- a/src/creators/show-help-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- HELP_OVERLAY
-} = require('../constants/overlay-states');
-
-function showHelpOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: HELP_OVERLAY
- }
- };
-}
-
-module.exports = showHelpOverlay;
diff --git a/src/creators/show-new-version-overlay.js b/src/creators/show-new-version-overlay.js
deleted file mode 100644
index f716b69..0000000
--- a/src/creators/show-new-version-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- NEW_VERSION_OVERLAY
-} = require('../constants/overlay-states');
-
-function showHelpOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: NEW_VERSION_OVERLAY
- }
- };
-}
-
-module.exports = showHelpOverlay;
diff --git a/src/creators/show-overwrite-overlay.js b/src/creators/show-overwrite-overlay.js
deleted file mode 100644
index 7ce1fc5..0000000
--- a/src/creators/show-overwrite-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- OVERWRITE_OVERLAY
-} = require('../constants/overlay-states');
-
-function showOverwriteOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: OVERWRITE_OVERLAY
- }
- };
-}
-
-module.exports = showOverwriteOverlay;
diff --git a/src/creators/show-projects-overlay.js b/src/creators/show-projects-overlay.js
deleted file mode 100644
index d984ffd..0000000
--- a/src/creators/show-projects-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- PROJECTS_OVERLAY
-} = require('../constants/overlay-states');
-
-function showProjectsOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: PROJECTS_OVERLAY
- }
- };
-}
-
-module.exports = showProjectsOverlay;
diff --git a/src/creators/show-save-on-change-overlay.js b/src/creators/show-save-on-change-overlay.js
deleted file mode 100644
index 22b2ca5..0000000
--- a/src/creators/show-save-on-change-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- SAVE_ON_CHANGE_OVERLAY
-} = require('../constants/overlay-states');
-
-function showSaveOnChangeOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: SAVE_ON_CHANGE_OVERLAY
- }
- };
-}
-
-module.exports = showSaveOnChangeOverlay;
diff --git a/src/creators/show-save-overlay.js b/src/creators/show-save-overlay.js
deleted file mode 100644
index ccd9dc1..0000000
--- a/src/creators/show-save-overlay.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const {
- SHOW_OVERLAY
-} = require('../constants/action-types');
-
-const {
- SAVE_OVERLAY
-} = require('../constants/overlay-states');
-
-function showSaveOverlay(){
- return {
- type: SHOW_OVERLAY,
- payload: {
- state: SAVE_OVERLAY
- }
- };
-}
-
-module.exports = showSaveOverlay;
diff --git a/src/plugins/handlers.js b/src/plugins/handlers.js
index 7277596..82dd63c 100644
--- a/src/plugins/handlers.js
+++ b/src/plugins/handlers.js
@@ -14,6 +14,7 @@ const Terminal = require('../lib/terminal');
const Documents = require('../lib/documents');
const highlighter = require('../lib/highlighter');
const directive = require('../lib/directive');
+const history = require('../lib/history');
const {
NEW_FILE,
@@ -125,7 +126,7 @@ function handlers(app, opts, done){
.then(function(){
documents.swap(path.join(cwd, filename));
});
- store.dispatch(creators.hideOverlay());
+ hideOverlay();
}
}
@@ -146,7 +147,7 @@ function handlers(app, opts, done){
documents.replace(path.join(cwd, filename));
handleActionQueue();
});
- store.dispatch(creators.hideOverlay());
+ hideOverlay();
}
function overwriteFile(){
@@ -170,6 +171,12 @@ function handlers(app, opts, done){
});
}
+ function cancelOverwriteFile(){
+ const { nextFile } = store.getState();
+ store.dispatch(creators.queueChangeFile(nextFile));
+ history.goBack();
+ }
+
function dontSaveFile(){
const { nextFile } = store.getState();
@@ -259,53 +266,53 @@ function handlers(app, opts, done){
function deleteProjectConfirm(name){
store.dispatch(creators.deleteProjectConfirm(name));
- store.dispatch(creators.showDeleteProjectOverlay());
+ history.pushState({}, '/overlay/deleteproject');
}
function showHelpOverlay(){
- store.dispatch(creators.showHelpOverlay());
+ history.pushState({}, '/overlay/help');
}
function showSaveOverlay(){
- store.dispatch(creators.showSaveOverlay());
+ history.pushState({}, '/overlay/save');
}
function showSaveOnChangeOverlay(){
- store.dispatch(creators.showSaveOnChangeOverlay());
+ history.pushState({}, '/overlay/save?showDontSaveButton=true');
}
function showOverwriteOverlay(name){
store.dispatch(creators.queueOverwriteFile(name));
- store.dispatch(creators.showOverwriteOverlay());
+ history.pushState({}, '/overlay/overwrite');
}
function showDownloadOverlay(){
- store.dispatch(creators.showDownloadOverlay());
+ history.pushState({}, '/overlay/download');
// TODO: is there ever a time when show download overlay doesn't reload devices?
/* eslint no-use-before-define: false */
reloadDevices();
}
function showProjectsOverlay(){
- store.dispatch(creators.showProjectsOverlay());
+ history.pushState({}, '/overlay/project');
}
function showDeleteFileOverlay(){
- store.dispatch(creators.showDeleteFileOverlay());
+ history.pushState({}, '/overlay/deletefile');
}
function showNewVersionOverlay(){
chrome.storage.local.get('newVersion', function(val) {
if(val.newVersion){
chrome.storage.local.remove('newVersion', function() {
- store.dispatch(creators.showNewVersionOverlay());
+ history.pushState({}, '/overlay/newversion');
});
}
});
}
function hideOverlay(){
- store.dispatch(creators.hideOverlay());
+ history.pushState({}, '/');
}
function findNext(){
@@ -707,6 +714,7 @@ function handlers(app, opts, done){
changeFile,
dontSaveFile,
overwriteFile,
+ cancelOverwriteFile,
// project methods
changeProject,
deleteProject,
diff --git a/src/plugins/overlays.js b/src/plugins/overlays.js
deleted file mode 100644
index db95098..0000000
--- a/src/plugins/overlays.js
+++ /dev/null
@@ -1,67 +0,0 @@
-'use strict';
-
-const React = require('react');
-
-const history = require('../lib/history');
-const store = require('../store');
-
-const {
- NO_OVERLAY,
- HELP_OVERLAY,
- SAVE_OVERLAY,
- DOWNLOAD_OVERLAY,
- PROJECTS_OVERLAY,
- OVERWRITE_OVERLAY,
- NEW_VERSION_OVERLAY,
- DELETE_FILE_OVERLAY,
- SAVE_ON_CHANGE_OVERLAY,
- DELETE_PROJECT_OVERLAY
-} = require('../constants/overlay-states');
-
-function overlays(app, opts, done){
-
- const { workspace, handlers } = app;
-
- function onOverlayChange(){
- const { overlayState } = store.getState();
-
- switch(overlayState){
- case HELP_OVERLAY:
- history.pushState({}, '/overlay/help');
- break;
- case SAVE_OVERLAY:
- history.pushState({}, '/overlay/save');
- break;
- case SAVE_ON_CHANGE_OVERLAY:
- history.pushState({}, '/overlay/save?showDontSaveButton=true');
- break;
- case OVERWRITE_OVERLAY:
- history.pushState({}, '/overlay/overwrite');
- break;
- case NEW_VERSION_OVERLAY:
- history.pushState({}, '/overlay/newversion');
- break;
- case DOWNLOAD_OVERLAY:
- history.pushState({}, '/overlay/download');
- break;
- case PROJECTS_OVERLAY:
- history.pushState({}, '/overlay/project');
- break;
- case DELETE_FILE_OVERLAY:
- history.pushState({}, '/overlay/deletefile');
- break;
- case DELETE_PROJECT_OVERLAY:
- history.pushState({}, '/overlay/deleteproject');
- break;
- case NO_OVERLAY:
- history.pushState({}, '/');
- break;
- }
- }
-
- store.subscribe(onOverlayChange);
-
- done();
-}
-
-module.exports = overlays;
diff --git a/src/views/delete-project-overlay.js b/src/views/delete-project-overlay.js
index e2f7e6a..39ad910 100644
--- a/src/views/delete-project-overlay.js
+++ b/src/views/delete-project-overlay.js
@@ -7,6 +7,7 @@ const Button = require('react-material/components/Button');
const Overlay = require('../components/overlay');
const OverlayTitle = require('../components/overlay-title');
const OverlayFooter = require('../components/overlay-footer');
+const history = require('../lib/history');
class DeleteProjectOverlay extends React.Component {
render(){
@@ -16,8 +17,7 @@ class DeleteProjectOverlay extends React.Component {
} = this.props;
const {
- deleteProject,
- showProjectsOverlay
+ deleteProject
} = handlers;
return (
@@ -25,7 +25,7 @@ class DeleteProjectOverlay extends React.Component {
Are you sure you want to delete {name}?
-
+
);
diff --git a/src/views/overwrite-overlay.js b/src/views/overwrite-overlay.js
index e431b32..6c69d43 100644
--- a/src/views/overwrite-overlay.js
+++ b/src/views/overwrite-overlay.js
@@ -7,27 +7,10 @@ const Button = require('react-material/components/Button');
const Overlay = require('../components/overlay');
const OverlayTitle = require('../components/overlay-title');
const OverlayFooter = require('../components/overlay-footer');
+const history = require('../lib/history');
class OverwriteOverlay extends React.Component {
- constructor(...args){
- super(...args);
-
- this.overwrite = this.overwrite.bind(this);
- }
-
- overwrite(){
- const {
- handlers
- } = this.props;
-
- const {
- overwriteFile
- } = handlers;
-
- overwriteFile();
- }
-
render(){
const {
filename,
@@ -35,15 +18,16 @@ class OverwriteOverlay extends React.Component {
} = this.props;
const {
- showSaveOverlay
+ overwriteFile,
+ cancelOverwriteFile
} = handlers;
return (
File '{filename}' already exists. Overwrite anyway?
-
-
+
+
);