mirror of
https://github.com/mue/mue.git
synced 2026-07-20 23:44:07 +02:00
feat: add work in progress 7.0 code
Co-authored-by: Alex Sparkes <turbomarshmello@gmail.com>
This commit is contained in:
@@ -1,62 +1,67 @@
|
||||
import { PureComponent, Fragment, Suspense, lazy } from 'react';
|
||||
import { PureComponent, Fragment, Suspense, lazy } from "react";
|
||||
|
||||
import Clock from './time/Clock';
|
||||
import Greeting from './greeting/Greeting';
|
||||
import Quote from './quote/Quote';
|
||||
import Search from './search/Search';
|
||||
import QuickLinks from './quicklinks/QuickLinks';
|
||||
import Date from './time/Date';
|
||||
import Message from './message/Message';
|
||||
import Clock from "./time/Clock";
|
||||
import Greeting from "./greeting/Greeting";
|
||||
import Quote from "./quote/Quote";
|
||||
import Search from "./search/Search";
|
||||
import QuickLinks from "./quicklinks/QuickLinks";
|
||||
import Date from "./time/Date";
|
||||
import Message from "./message/Message";
|
||||
import Reminder from "./reminder/Reminder";
|
||||
|
||||
import EventBus from 'modules/helpers/eventbus';
|
||||
import EventBus from "modules/helpers/eventbus";
|
||||
|
||||
const Weather = lazy(() => import('./weather/Weather'));
|
||||
const Weather = lazy(() => import("./weather/Weather"));
|
||||
const renderLoader = () => <></>;
|
||||
|
||||
export default class Widgets extends PureComponent {
|
||||
online = (localStorage.getItem('offlineMode') === 'false');
|
||||
online = localStorage.getItem("offlineMode") === "false";
|
||||
constructor() {
|
||||
super();
|
||||
this.state = {
|
||||
order: JSON.parse(localStorage.getItem('order')),
|
||||
welcome: localStorage.getItem('showWelcome')
|
||||
order: JSON.parse(localStorage.getItem("order")),
|
||||
welcome: localStorage.getItem("showWelcome"),
|
||||
};
|
||||
// widgets we can re-order
|
||||
this.widgets = {
|
||||
time: this.enabled('time') ? <Clock/> : null,
|
||||
greeting: this.enabled('greeting') ? <Greeting/> : null,
|
||||
quote: this.enabled('quote') ? <Quote/> : null,
|
||||
date: this.enabled('date') ? <Date/> : null,
|
||||
quicklinks: this.enabled('quicklinksenabled') && this.online ? <QuickLinks/> : null,
|
||||
message: this.enabled('message') ? <Message/> : null
|
||||
time: this.enabled("time") ? <Clock /> : null,
|
||||
greeting: this.enabled("greeting") ? <Greeting /> : null,
|
||||
quote: this.enabled("quote") ? <Quote /> : null,
|
||||
date: this.enabled("date") ? <Date /> : null,
|
||||
quicklinks:
|
||||
this.enabled("quicklinksenabled") && this.online ? (
|
||||
<QuickLinks />
|
||||
) : null,
|
||||
message: this.enabled("message") ? <Message /> : null,
|
||||
reminder: this.enabled("reminder") ? <Reminder /> : null,
|
||||
};
|
||||
}
|
||||
|
||||
enabled(key) {
|
||||
return (localStorage.getItem(key) === 'true');
|
||||
return localStorage.getItem(key) === "true";
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
EventBus.on('refresh', (data) => {
|
||||
if (data === 'widgets') {
|
||||
EventBus.on("refresh", (data) => {
|
||||
if (data === "widgets") {
|
||||
this.setState({
|
||||
order: JSON.parse(localStorage.getItem('order'))
|
||||
order: JSON.parse(localStorage.getItem("order")),
|
||||
});
|
||||
}
|
||||
|
||||
if (data === 'widgetsWelcome') {
|
||||
if (data === "widgetsWelcome") {
|
||||
this.setState({
|
||||
welcome: localStorage.getItem('showWelcome')
|
||||
welcome: localStorage.getItem("showWelcome"),
|
||||
});
|
||||
localStorage.setItem('showWelcome', true);
|
||||
localStorage.setItem("showWelcome", true);
|
||||
window.onbeforeunload = () => {
|
||||
localStorage.clear();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (data === 'widgetsWelcomeDone') {
|
||||
if (data === "widgetsWelcomeDone") {
|
||||
this.setState({
|
||||
welcome: localStorage.getItem('showWelcome')
|
||||
welcome: localStorage.getItem("showWelcome"),
|
||||
});
|
||||
window.onbeforeunload = null;
|
||||
}
|
||||
@@ -65,8 +70,8 @@ export default class Widgets extends PureComponent {
|
||||
|
||||
render() {
|
||||
// don't show when welcome is there
|
||||
if (this.state.welcome !== 'false') {
|
||||
return <div id='widgets'></div>;
|
||||
if (this.state.welcome !== "false") {
|
||||
return <div id="widgets"></div>;
|
||||
}
|
||||
|
||||
// allow for re-ordering widgets
|
||||
@@ -74,19 +79,29 @@ export default class Widgets extends PureComponent {
|
||||
|
||||
if (this.state.order) {
|
||||
this.state.order.forEach((element) => {
|
||||
elements.push(<Fragment key={element}>{this.widgets[element]}</Fragment>);
|
||||
elements.push(
|
||||
<Fragment key={element}>{this.widgets[element]}</Fragment>
|
||||
);
|
||||
});
|
||||
} else {
|
||||
// prevent error
|
||||
elements = [<Greeting/>, <Clock/>, <QuickLinks/>, <Quote/>, <Date/>, <Message/>];
|
||||
elements = [
|
||||
<Greeting />,
|
||||
<Clock />,
|
||||
<QuickLinks />,
|
||||
<Quote />,
|
||||
<Date />,
|
||||
<Message />,
|
||||
<Reminder />,
|
||||
];
|
||||
}
|
||||
|
||||
return (
|
||||
<div id='widgets'>
|
||||
<div id="widgets">
|
||||
<Suspense fallback={renderLoader()}>
|
||||
{this.enabled('searchBar') ? <Search/> : null}
|
||||
{this.enabled("searchBar") ? <Search /> : null}
|
||||
{elements}
|
||||
{this.enabled('weatherEnabled') && this.online ? <Weather/> : null}
|
||||
{this.enabled("weatherEnabled") && this.online ? <Weather /> : null}
|
||||
</Suspense>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user