import React from 'react'; import EventBus from '../../modules/helpers/eventbus'; 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'; const Weather = React.lazy(() => import('./weather/Weather')); const renderLoader = () => <>; export default class Widgets extends React.PureComponent { constructor() { super(); this.state = { order: JSON.parse(localStorage.getItem('order')) }; // widgets we can re-order this.widgets = { time: this.enabled('time') ? : null, greeting: this.enabled('greeting') ? : null, quote: this.enabled('quote') ? : null, date: this.enabled('date') ? : null, quicklinks: this.enabled('quicklinksenabled') ? : null }; } enabled(key) { return (localStorage.getItem(key) === 'true'); } componentDidMount() { EventBus.on('refresh', (data) => { if (data === 'widgets') { this.setState({ order: JSON.parse(localStorage.getItem('order')) }); } }); } render() { // allow for re-ordering widgets let elements = []; if (this.state.order) { this.state.order.forEach((element) => { elements.push({this.widgets[element]}); }); } else { // prevent error elements = ['greeting', 'time', 'quicklinks', 'quote', 'date']; } return (
{this.enabled('searchBar') ? : null} {elements} {this.enabled('weatherEnabled') && !localStorage.getItem('offlineMode') ? : null}
); } }