From c42e41ca15ac4afae1094ad327d3e27a1c05ff57 Mon Sep 17 00:00:00 2001 From: David Ralph Date: Sun, 3 Jan 2021 15:27:09 +0000 Subject: [PATCH] improve update modal etc --- package.json | 1 + src/App.jsx | 18 +++++------ src/components/modals/Update.jsx | 31 +++++++++++++------ .../widgets/countdown/Countdown.jsx | 22 ------------- .../widgets/countdown/countdown.scss | 6 ---- 5 files changed, 30 insertions(+), 48 deletions(-) delete mode 100644 src/components/widgets/countdown/Countdown.jsx delete mode 100644 src/components/widgets/countdown/countdown.scss diff --git a/package.json b/package.json index 76257bad..a8e603da 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "license": "BSD-3-Clause", "version": "5.0.0", "dependencies": { + "@eartharoid/dtf": "^1.0.8", "@material-ui/core": "4.11.2", "@material-ui/icons": "4.11.2", "deepmerge": "^4.2.2", diff --git a/src/App.jsx b/src/App.jsx index e867bfbf..8e565140 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -9,7 +9,6 @@ import Maximise from './components/widgets/background/Maximise'; import Favourite from './components/widgets/background/Favourite'; import PhotoInformation from './components/widgets/background/PhotoInformation'; import Date from './components/widgets/time/Date'; -import Countdown from './components/widgets/countdown/Countdown'; import Navbar from './components/widgets/navbar/Navbar'; @@ -22,7 +21,7 @@ import merge from 'deepmerge'; const Main = React.lazy(() => import('./components/modals/Main')); const Update = React.lazy(() => import('./components/modals/Update')); const Welcome = React.lazy(() => import('./components/modals/Welcome')); -const Feedback = React.lazy(() => import('./components/modals/Feedback')); +//const Feedback = React.lazy(() => import('./components/modals/Feedback')); const renderLoader = () =>
; export default class App extends React.PureComponent { @@ -51,6 +50,7 @@ export default class App extends React.PureComponent { // Render all the components render() { + // dark theme support for modals and info card let modalClassList = 'Modal'; let tooltipClassList = 'infoCard'; if ((localStorage.getItem('brightnessTime') && new Date().getHours() > 18) || localStorage.getItem('darkTheme') === 'true') { @@ -59,6 +59,7 @@ export default class App extends React.PureComponent { } const overlayClassList = (localStorage.getItem('animations') === 'true') ? 'Overlay modal-animation' : 'Overlay'; + /// language const languagecode = localStorage.getItem('language') || 'en'; const language = merge(require('./translations/en.json'), require(`./translations/${languagecode}.json`)); @@ -73,27 +74,22 @@ export default class App extends React.PureComponent { - this.setState({ mainModal: false })} isOpen={this.state.mainModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> -
this.setState({ mainModal: false })} /> +
this.setState({ mainModal: false })} /> this.setState({ updateModal: false })} isOpen={this.state.updateModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> - this.setState({ updateModal: false })} /> + this.setState({ updateModal: false })} /> this.closeWelcome()} isOpen={this.state.welcomeModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> this.closeWelcome()} language={language.welcome} /> - this.setState({ feedbackModal: false })} isOpen={this.state.feedbackModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> + {/* this.setState({ feedbackModal: false })} isOpen={this.state.feedbackModal} className={modalClassList} overlayClassName={overlayClassList} ariaHideApp={false}> this.setState({ feedbackModal: false })} /> - + */} diff --git a/src/components/modals/Update.jsx b/src/components/modals/Update.jsx index 6ba36737..5d7de5cf 100644 --- a/src/components/modals/Update.jsx +++ b/src/components/modals/Update.jsx @@ -16,17 +16,29 @@ export default class Update extends React.PureComponent { async getUpdate() { const supportText = `

${this.props.language.contact_support}: https://muetab.com/contact

`; - if (localStorage.getItem('offlineMode') === 'true') return this.setState({ - title: this.props.language.offline.title, - html: this.props.language.offline.description - }); + const removeStuff = () => { // quick code to make update modal a bit better, will replace later + document.getElementById('author').innerText = ''; + const img = document.getElementsByTagName('img')[0]; + img.parentNode.removeChild(img); + } + + if (localStorage.getItem('offlineMode') === 'true') { + removeStuff(); + return this.setState({ + title: this.props.language.offline.title, + html: this.props.language.offline.description + }); + } try { // Get update log from the API const data = await (await fetch(Constants.API_URL + '/getUpdate')).json(); - if (data.statusCode === 500) return this.setState({ - title: this.props.language.error.title, - html: this.props.language.error.description + supportText - }); + if (data.statusCode === 500) { + removeStuff(); + return this.setState({ + title: this.props.language.error.title, + html: this.props.language.error.description + supportText + }); + } this.setState({ title: data.title, @@ -36,6 +48,7 @@ export default class Update extends React.PureComponent { html: data.content + `

${this.props.language.read_blog}: ${data.url}

` }); } catch (e) { // If it fails, we send an error + removeStuff(); this.setState({ title: this.props.language.error.title, html: this.props.language.error.description + supportText @@ -51,7 +64,7 @@ export default class Update extends React.PureComponent { return
×

{this.state.title}

-
By {this.state.author} • {this.state.date}
+
By {this.state.author} • {this.state.date}
Update

; diff --git a/src/components/widgets/countdown/Countdown.jsx b/src/components/widgets/countdown/Countdown.jsx deleted file mode 100644 index 0b859ccd..00000000 --- a/src/components/widgets/countdown/Countdown.jsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import Countdown from 'react-countdown'; - -import './countdown.scss'; - -export default class CountdownWidget extends React.PureComponent { - constructor(...args) { - super(...args); - this.state = { - countdown: new Date(localStorage.getItem('birthday')), - message: localStorage.getItem('countdownmessage') || 'until tomorrow' - }; - } - - render() { - if (localStorage.getItem('countdown') === 'false') return; - return

- this.setState({ message: 'Today\'s the day!'})} />
- {this.state.message} -

; - } -} diff --git a/src/components/widgets/countdown/countdown.scss b/src/components/widgets/countdown/countdown.scss deleted file mode 100644 index eeef9ba1..00000000 --- a/src/components/widgets/countdown/countdown.scss +++ /dev/null @@ -1,6 +0,0 @@ -.countdown { - position: absolute; - bottom: 0; - font-size: 0.95em; - cursor: default; -} \ No newline at end of file