Skip to content

Commit 4577a4d

Browse files
committed
Merge pull request #262 from parallaxinc/newVersionOverlay
new version overlay
2 parents cfe7537 + f890614 commit 4577a4d

File tree

9 files changed

+97
-1
lines changed

9 files changed

+97
-1
lines changed

background.js

+4
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,7 @@ chrome.app.runtime.onLaunched.addListener(function() {
3030
win.onClosed.addListener(closeSerialPorts);
3131
});
3232
});
33+
34+
chrome.runtime.onInstalled.addListener(function(evt){
35+
chrome.storage.local.set({newVersion: 'newVersion'});
36+
});

client.js

+2
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ function onRender(err){
7171

7272
const {
7373
newFile,
74+
showNewVersionOverlay,
7475
changeFile,
7576
changeProject
7677
} = handlers;
@@ -88,6 +89,7 @@ function onRender(err){
8889
} else {
8990
newFile();
9091
}
92+
showNewVersionOverlay();
9193
})
9294
.catch(console.error.bind(console));
9395
}

manifest.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"permissions": [
88
"serial",
99
"unlimitedStorage",
10-
"syncFileSystem"
10+
"syncFileSystem",
11+
"storage"
1112
],
1213
"icons": {
1314
"16": "icons/icon16.png",

src/constants/overlay-states.js

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const overlayStates = {
77
DOWNLOAD_OVERLAY: 'DOWNLOAD_OVERLAY',
88
PROJECTS_OVERLAY: 'PROJECTS_OVERLAY',
99
OVERWRITE_OVERLAY: 'OVERWRITE_OVERLAY',
10+
NEW_VERSION_OVERLAY: 'NEW_VERSION_OVERLAY',
1011
DELETE_FILE_OVERLAY: 'DELETE_FILE_OVERLAY',
1112
DELETE_PROJECT_OVERLAY: 'DELETE_PROJECT_OVERLAY'
1213
};

src/creators/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const creators = {
88
showDownloadOverlay: require('./show-download-overlay'),
99
showProjectsOverlay: require('./show-projects-overlay'),
1010
showOverwriteOverlay: require('./show-overwrite-overlay'),
11+
showNewVersionOverlay: require('./show-new-version-overlay'),
1112
showSaveOverlay: require('./show-save-overlay'),
1213
showHelpOverlay: require('./show-help-overlay'),
1314
hideOverlay: require('./hide-overlay'),
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
3+
const {
4+
SHOW_OVERLAY
5+
} = require('../constants/action-types');
6+
7+
const {
8+
NEW_VERSION_OVERLAY
9+
} = require('../constants/overlay-states');
10+
11+
function showHelpOverlay(){
12+
return {
13+
type: SHOW_OVERLAY,
14+
payload: {
15+
state: NEW_VERSION_OVERLAY
16+
}
17+
};
18+
}
19+
20+
module.exports = showHelpOverlay;

src/plugins/handlers.js

+11
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,16 @@ function handlers(app, opts, done){
265265
store.dispatch(creators.showDeleteFileOverlay());
266266
}
267267

268+
function showNewVersionOverlay(){
269+
chrome.storage.local.get('newVersion', function(val) {
270+
if(val.newVersion){
271+
chrome.storage.local.remove('newVersion', function() {
272+
store.dispatch(creators.showNewVersionOverlay());
273+
});
274+
}
275+
});
276+
}
277+
268278
function hideOverlay(){
269279
store.dispatch(creators.hideOverlay());
270280
}
@@ -596,6 +606,7 @@ function handlers(app, opts, done){
596606
// overlay methods
597607
showHelpOverlay,
598608
showSaveOverlay,
609+
showNewVersionOverlay,
599610
showDownloadOverlay,
600611
showProjectsOverlay,
601612
showDeleteFileOverlay,

src/plugins/overlays.js

+5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const React = require('react');
44

55
const HelpOverlay = require('../views/help-overlay');
66
const SaveOverlay = require('../views/save-overlay');
7+
const NewVersionOverlay = require('../views/new-version-overlay');
78
const ProjectOverlay = require('../views/project-overlay');
89
const DownloadOverlay = require('../views/download-overlay');
910
const OverwriteOverlay = require('../views/overwrite-overlay');
@@ -19,6 +20,7 @@ const {
1920
DOWNLOAD_OVERLAY,
2021
PROJECTS_OVERLAY,
2122
OVERWRITE_OVERLAY,
23+
NEW_VERSION_OVERLAY,
2224
DELETE_FILE_OVERLAY,
2325
DELETE_PROJECT_OVERLAY
2426
} = require('../constants/overlay-states');
@@ -48,6 +50,9 @@ function overlays(app, opts, done){
4850
case OVERWRITE_OVERLAY:
4951
renderOverlay(<OverwriteOverlay store={store} handlers={handlers} />);
5052
break;
53+
case NEW_VERSION_OVERLAY:
54+
renderOverlay(<NewVersionOverlay handlers={handlers} />);
55+
break;
5156
case DOWNLOAD_OVERLAY:
5257
renderOverlay(<DownloadOverlay store={store} handlers={handlers} />);
5358
break;

src/views/new-version-overlay.js

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
'use strict';
2+
3+
const React = require('react');
4+
const Button = require('react-material/components/Button');
5+
6+
const Overlay = require('../components/overlay');
7+
const OverlayTitle = require('../components/overlay-title');
8+
const OverlayFooter = require('../components/overlay-footer');
9+
10+
const contentStyle = {
11+
position: 'relative'
12+
};
13+
14+
const releaseNotesLink = 'https://github.com/parallaxinc/Parallax-IDE/releases';
15+
const installationNotesLink = 'https://www.parallax.com/downloads/parallax-ide-chrome';
16+
17+
class NewVersionOverlay extends React.Component {
18+
19+
render(){
20+
21+
const {
22+
handlers
23+
} = this.props;
24+
25+
const {
26+
hideOverlay
27+
} = handlers;
28+
29+
const {
30+
name,
31+
version
32+
} = chrome.runtime.getManifest();
33+
34+
return (
35+
<Overlay>
36+
<OverlayTitle>{name} Automatically Updated to v{version}</OverlayTitle>
37+
<div style={contentStyle}>
38+
You are now running a new release of {name}!
39+
</div>
40+
<div style={contentStyle}>
41+
See <a href={releaseNotesLink} target="_blank">Release Notes</a> and <a href={installationNotesLink} target="_blank">Installation Notes</a> for more details.
42+
</div>
43+
<OverlayFooter>
44+
<Button onClick={hideOverlay}>OK</Button>
45+
</OverlayFooter>
46+
</Overlay>
47+
);
48+
}
49+
}
50+
51+
module.exports = NewVersionOverlay;

0 commit comments

Comments
 (0)