diff --git a/src/addons/addons/tw-disable-restore-points/_manifest_entry.js b/src/addons/addons/tw-disable-restore-points/_manifest_entry.js index 7219cd74e..4d38657c7 100644 --- a/src/addons/addons/tw-disable-restore-points/_manifest_entry.js +++ b/src/addons/addons/tw-disable-restore-points/_manifest_entry.js @@ -2,7 +2,7 @@ const manifest = { "noTranslations": true, "name": "Disable restore points", - "description": "Disables all restore point creation. Be careful.", + "description": "Disable automatic restore point creation. Does not delete existing restore points.", "userscripts": [ { "url": "userscript.js" diff --git a/src/addons/addons/tw-disable-restore-points/userscript.js b/src/addons/addons/tw-disable-restore-points/userscript.js index 481ed8c43..783887201 100644 --- a/src/addons/addons/tw-disable-restore-points/userscript.js +++ b/src/addons/addons/tw-disable-restore-points/userscript.js @@ -1,3 +1,4 @@ +import AddonHooks from '../../hooks.js'; export default async function ({ addon }) { - window.DISABLE_RESTORE_POINTS = true; + AddonHooks.disableRestorePoints = true; } diff --git a/src/addons/generated/upstream-meta.json b/src/addons/generated/upstream-meta.json index f7126d77b..dee90ef63 100644 --- a/src/addons/generated/upstream-meta.json +++ b/src/addons/generated/upstream-meta.json @@ -1 +1 @@ -{"commit":"aea0532"} \ No newline at end of file +{"commit":"dc74b83"} \ No newline at end of file diff --git a/src/components/tw-restore-point-modal/restore-point-modal.css b/src/components/tw-restore-point-modal/restore-point-modal.css index 779e0a0f3..fa9b958d4 100644 --- a/src/components/tw-restore-point-modal/restore-point-modal.css +++ b/src/components/tw-restore-point-modal/restore-point-modal.css @@ -79,23 +79,30 @@ } .restore-point:hover { border-color: $motion-primary; -} -.restore-point-details { - } .restore-point-title { font-weight: bold; } .thumbnail-container { - + flex-shrink: 0; + /* 4:3 */ + width: 100px; + height: 75px; } -.thumbnail { +.thumbnail-image { display: block; border-radius: 0.25rem; - width: 100px; + width: 100%; height: 100%; - max-height: 100px; +} +.thumbnail-placeholder { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + font-size: 2em; } .delete-button { diff --git a/src/components/tw-restore-point-modal/restore-point.jsx b/src/components/tw-restore-point-modal/restore-point.jsx index 883a882c5..bf4028eaf 100644 --- a/src/components/tw-restore-point-modal/restore-point.jsx +++ b/src/components/tw-restore-point-modal/restore-point.jsx @@ -5,6 +5,7 @@ import bindAll from 'lodash.bindall'; import styles from './restore-point-modal.css'; import {formatBytes} from '../../lib/tw-bytes-utils'; import RestorePointAPI from '../../lib/tw-restore-point-api'; +import log from '../../lib/log'; // Browser support is not perfect yet const relativeTimeSupported = () => typeof Intl !== 'undefined' && typeof Intl.RelativeTimeFormat !== 'undefined'; @@ -17,7 +18,8 @@ class RestorePoint extends React.Component { 'handleClickLoad' ]); this.state = { - thumbnail: null + thumbnail: null, + error: false }; this.unmounted = false; @@ -35,6 +37,14 @@ class RestorePoint extends React.Component { thumbnail: url }); } + }) + .catch(error => { + log.error(error); + if (!this.unmounted) { + this.setState({ + error: true + }); + } }); } @@ -71,15 +81,20 @@ class RestorePoint extends React.Component { className={styles.restorePoint} onClick={this.handleClickLoad} > - +
+ {this.state.error ? ( + + {'?'} + + ) : this.state.thumbnail ? ( + + ) : null} +
-
+
{this.props.title}
@@ -103,7 +118,7 @@ class RestorePoint extends React.Component {