diff --git a/src/components/helpers/preview/Preview.jsx b/src/components/helpers/preview/Preview.jsx
new file mode 100644
index 00000000..b66fe53d
--- /dev/null
+++ b/src/components/helpers/preview/Preview.jsx
@@ -0,0 +1,11 @@
+import './preview.scss';
+
+export default function Preview(props) {
+ return (
+
+
NOTICE
+ You are currently in preview mode. Settings will be reset on closing this tab.
+
+
+ );
+}
diff --git a/src/components/helpers/preview/preview.scss b/src/components/helpers/preview/preview.scss
new file mode 100644
index 00000000..2bcc4099
--- /dev/null
+++ b/src/components/helpers/preview/preview.scss
@@ -0,0 +1,15 @@
+.preview {
+ position: absolute;
+ bottom: 20px;
+ right: 20px;
+ padding: 15px;
+ color: var(--modal-text);
+ background: var(--background);
+ max-width: 300px;
+ border-radius: 0.7em;
+ z-index: 999;
+
+ h1 {
+ font-size: 1rem;
+ }
+}
diff --git a/src/components/modals/Modals.jsx b/src/components/modals/Modals.jsx
index f1c38986..2c543304 100644
--- a/src/components/modals/Modals.jsx
+++ b/src/components/modals/Modals.jsx
@@ -5,6 +5,7 @@ import Hotkeys from 'react-hot-keys';
import Main from './main/Main';
import Navbar from '../widgets/navbar/Navbar';
+import Preview from '../helpers/preview/Preview';
import EventBus from 'modules/helpers/eventbus';
@@ -20,7 +21,8 @@ export default class Modals extends PureComponent {
mainModal: false,
updateModal: false,
welcomeModal: false,
- feedbackModal: false
+ feedbackModal: false,
+ preview: false
};
}
@@ -49,10 +51,20 @@ export default class Modals extends PureComponent {
this.setState({
welcomeModal: false
});
+ EventBus.dispatch('refresh', 'widgetsWelcomeDone');
EventBus.dispatch('refresh', 'widgets');
EventBus.dispatch('refresh', 'backgroundwelcome');
}
+ previewWelcome() {
+ localStorage.setItem('showWelcome', false);
+ this.setState({
+ welcomeModal: false,
+ preview: true
+ });
+ EventBus.dispatch('refresh', 'widgetsWelcome');
+ }
+
toggleModal(type, action) {
this.setState({
[type]: action
@@ -72,9 +84,10 @@ export default class Modals extends PureComponent {
this.closeWelcome()} isOpen={this.state.welcomeModal} className='Modal welcomemodal mainModal' overlayClassName='Overlay welcomeoverlay' shouldCloseOnOverlayClick={false} ariaHideApp={false}>
- this.closeWelcome()}/>
+ this.closeWelcome()} modalSkip={() => this.previewWelcome()}/>
+ {this.state.preview ? window.location.reload()}/> : null}
{variables.keybinds.toggleModal && variables.keybinds.toggleModal !== '' ? this.toggleModal('mainModal', (this.state.mainModal === true ? false : true))}/> : null}
>
);
diff --git a/src/components/modals/welcome/Welcome.jsx b/src/components/modals/welcome/Welcome.jsx
index 3ea518a3..6b4b0526 100644
--- a/src/components/modals/welcome/Welcome.jsx
+++ b/src/components/modals/welcome/Welcome.jsx
@@ -99,6 +99,7 @@ export default class WelcomeModal extends PureComponent {
this.switchTab(tab)}/>
+ {(this.state.currentTab === 0) ? : null}
{(this.state.currentTab !== 0) ? : null}
diff --git a/src/components/widgets/Widgets.jsx b/src/components/widgets/Widgets.jsx
index a50b7bf7..eef4aac0 100644
--- a/src/components/widgets/Widgets.jsx
+++ b/src/components/widgets/Widgets.jsx
@@ -18,7 +18,8 @@ export default class Widgets extends PureComponent {
constructor() {
super();
this.state = {
- order: JSON.parse(localStorage.getItem('order'))
+ order: JSON.parse(localStorage.getItem('order')),
+ welcome: localStorage.getItem('showWelcome')
};
// widgets we can re-order
this.widgets = {
@@ -42,12 +43,29 @@ export default class Widgets extends PureComponent {
order: JSON.parse(localStorage.getItem('order'))
});
}
+
+ if (data === 'widgetsWelcome') {
+ this.setState({
+ welcome: localStorage.getItem('showWelcome')
+ });
+ localStorage.setItem('showWelcome', true);
+ window.onbeforeunload = () => {
+ localStorage.clear();
+ }
+ }
+
+ if (data === 'widgetsWelcomeDone') {
+ this.setState({
+ welcome: localStorage.getItem('showWelcome')
+ });
+ window.onbeforeunload = null;
+ }
});
}
render() {
// don't show when welcome is there
- if (localStorage.getItem('showWelcome') !== 'false') {
+ if (this.state.welcome !== 'false') {
return ;
}