From 469f7a0a4868c552232d7d8bcaf2fb462502abba Mon Sep 17 00:00:00 2001 From: willyb321 Date: Sat, 15 Sep 2018 08:54:06 +1000 Subject: [PATCH] format and request permission to store data fixes people losing builds --- src/app/Coriolis.jsx | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/app/Coriolis.jsx b/src/app/Coriolis.jsx index 502a3ee7..a9dccd4d 100644 --- a/src/app/Coriolis.jsx +++ b/src/app/Coriolis.jsx @@ -134,9 +134,9 @@ export default class Coriolis extends React.Component { console && console.error && console.error(arguments); // eslint-disable-line no-console if (errObj) { if (errObj instanceof Error) { - bugsnagClient.notify(errObj) // eslint-disable-line + bugsnagClient.notify(errObj); // eslint-disable-line } else if (errObj instanceof String) { - bugsnagClient.notify(msg, errObj) // eslint-disable-line + bugsnagClient.notify(msg, errObj); // eslint-disable-line } } this.setState({ @@ -180,13 +180,13 @@ export default class Coriolis extends React.Component { case 72: // 'h' if (e.ctrlKey || e.metaKey) { // CTRL/CMD + h e.preventDefault(); - this._showModal(); + this._showModal(); } break; case 73: // 'i' if (e.ctrlKey || e.metaKey) { // CTRL/CMD + i e.preventDefault(); - this._showModal(); + this._showModal(); } break; case 79: // 'o' @@ -208,7 +208,7 @@ export default class Coriolis extends React.Component { * @param {React.Component} content Modal Content */ _showModal(content) { - let modal =
this._hideModal() }>{content}
; + let modal =
this._hideModal()}>{content}
; this.setState({ modal }); } @@ -286,7 +286,7 @@ export default class Coriolis extends React.Component { return this.emitter.addListener('windowResize', listener); } - /** + /** * Add a listener to global commands such as save, * @param {Function} listener Listener callback * @return {Object} Subscription token @@ -323,6 +323,16 @@ export default class Coriolis extends React.Component { componentWillMount() { // Listen for appcache updated event, present refresh to update view // Check that service workers are registered + if (navigator.storage && navigator.storage.persist) { + window.addEventListener('load', () => { + navigator.storage.persist().then(granted => { + if (granted) + console.log('Storage will not be cleared except by explicit user action'); + else + console.log('Storage may be cleared by the UA under storage pressure.'); + }); + } + } if ('serviceWorker' in navigator) { window.addEventListener('load', () => { // Your service-worker.js *must* be located at the top-level directory relative to your site. @@ -383,16 +393,22 @@ export default class Coriolis extends React.Component { render() { let currentMenu = this.state.currentMenu; - return
-
- { this.state.error ? this.state.error : this.state.page ? React.createElement(this.state.page, { currentMenu }) : } - { this.state.modal } - { this.state.tooltip } + return
+
+ {this.state.error ? this.state.error : this.state.page ? React.createElement(this.state.page, { currentMenu }) : + } + {this.state.modal} + {this.state.tooltip}
;