perf: reduce localstorage calls etc

This commit is contained in:
David Ralph
2021-08-15 20:33:06 +01:00
parent 16485c3d2c
commit e82ac7da9e
8 changed files with 21 additions and 30 deletions

View File

@@ -58,7 +58,7 @@ export default class Modals extends PureComponent {
render() {
return (
<>
<Navbar openModal={(modal) => this.toggleModal(modal, true)}/>
{this.state.welcomeModal === false ? <Navbar openModal={(modal) => this.toggleModal(modal, true)}/> : null}
<Modal closeTimeoutMS={300} id='modal' onRequestClose={() => this.toggleModal('mainModal', false)} isOpen={this.state.mainModal} className='Modal mainModal' overlayClassName='Overlay' ariaHideApp={false}>
<Main modalClose={() => this.toggleModal('mainModal', false)}/>
</Modal>

View File

@@ -13,6 +13,7 @@ const Weather = lazy(() => import('./weather/Weather'));
const renderLoader = () => <></>;
export default class Widgets extends PureComponent {
online = (localStorage.getItem('offlineMode') === 'false');
constructor() {
super();
this.state = {
@@ -24,7 +25,7 @@ export default class Widgets extends PureComponent {
greeting: this.enabled('greeting') ? <Greeting/> : null,
quote: this.enabled('quote') ? <Quote/> : null,
date: this.enabled('date') ? <Date/> : null,
quicklinks: this.enabled('quicklinksenabled') ? <QuickLinks/> : null
quicklinks: this.enabled('quicklinksenabled') && this.online ? <QuickLinks/> : null
};
}
@@ -65,7 +66,7 @@ export default class Widgets extends PureComponent {
<Suspense fallback={renderLoader()}>
{this.enabled('searchBar') ? <Search/> : null}
{elements}
{this.enabled('weatherEnabled') && (localStorage.getItem('offlineMode') === 'false') ? <Weather/> : null}
{this.enabled('weatherEnabled') && this.online ? <Weather/> : null}
</Suspense>
</div>
);

View File

@@ -66,12 +66,12 @@ export default class Greeting extends PureComponent {
message = this.language.afternoon;
}
// Events
message = this.doEvents(now, message);
// Events and custom
const custom = localStorage.getItem('defaultGreetingMessage');
if (custom === 'false') {
message = '';
} else {
message = this.doEvents(now, message);
}
// Name

View File

@@ -24,10 +24,6 @@ export default class Navbar extends PureComponent {
}
render() {
if (localStorage.getItem('showWelcome') !== 'false') {
return null;
}
const backgroundEnabled = (localStorage.getItem('background') === 'true');
return (

View File

@@ -101,18 +101,17 @@ export default class QuickLinks extends PureComponent {
// widget zoom
setZoom(element) {
const zoomQuicklinks = Number((localStorage.getItem('zoomQuicklinks') || 100) / 100);
const images = element.getElementsByTagName('img');
for (const img of images) {
img.style.height = `${0.87 * Number((localStorage.getItem('zoomQuicklinks') || 100) / 100)}em`;
img.style.height = `${0.87 * zoomQuicklinks}em`;
};
element.querySelector('button').style.fontSize = `${1.15 * Number((localStorage.getItem('zoomQuicklinks') || 100) / 100)}em`;
element.querySelector('button').style.fontSize = `${1.15 * zoomQuicklinks}em`;
}
componentDidMount() {
if (localStorage.getItem('offlineMode') === 'true') {
return;
}
EventBus.on('refresh', (data) => {
if (data === 'quicklinks') {
const element = document.querySelector('.quicklinks-container');
@@ -148,10 +147,6 @@ export default class QuickLinks extends PureComponent {
}
render() {
if (localStorage.getItem('offlineMode') === 'true') {
return null;
}
let target, rel = null;
if (localStorage.getItem('quicklinksnewtab') === 'true') {
target = '_blank';

View File

@@ -200,8 +200,9 @@ export default class Quote extends PureComponent {
}
setZoom() {
document.querySelector('.quote').style.fontSize = `${0.8 * Number((localStorage.getItem('zoomQuote') || 100) / 100)}em`;
document.querySelector('.quoteauthor').style.fontSize = `${0.9 * Number((localStorage.getItem('zoomQuote') || 100) / 100)}em`;
const zoomQuote = Number((localStorage.getItem('zoomQuote') || 100) / 100);
document.querySelector('.quote').style.fontSize = `${0.8 * zoomQuote}em`;
document.querySelector('.quoteauthor').style.fontSize = `${0.9 * zoomQuote}em`;
}
componentDidMount() {

View File

@@ -96,7 +96,7 @@ export default class DateWidget extends PureComponent {
});
} else {
// Long date
const lang = localStorage.getItem('language').split('_')[0];
const lang = window.languagecode.split('_')[0];
const nth = (localStorage.getItem('datenth') === 'true') ? dtf.nth(date.getDate()) : date.getDate();

View File

@@ -31,11 +31,8 @@ export default class Weather extends PureComponent {
}
async getWeather() {
if (localStorage.getItem('offlineMode') === 'true') {
return null;
}
document.querySelector('.weather').style.fontSize = `${Number((localStorage.getItem('zoomWeather') || 100) / 100)}em`;
const zoomWeather = `${Number((localStorage.getItem('zoomWeather') || 100) / 100)}em`;
document.querySelector('.weather').style.fontSize = zoomWeather;
let data = {
weather: [
@@ -62,7 +59,7 @@ export default class Weather extends PureComponent {
};
if (!this.state.weather.temp) {
data = await (await fetch(window.constants.PROXY_URL + `/weather/current?city=${this.state.location}&lang=${localStorage.getItem('language')}`)).json();
data = await (await fetch(window.constants.PROXY_URL + `/weather/current?city=${this.state.location}&lang=${window.languadecode}`)).json();
}
if (data.cod === '404') {
@@ -114,7 +111,7 @@ export default class Weather extends PureComponent {
}
});
document.querySelector('.weather svg').style.fontSize = `${0.95 * Number((localStorage.getItem('zoomWeather') || 100) / 100)}em`;
document.querySelector('.weather svg').style.fontSize = zoomWeather;
}
componentDidMount() {
@@ -123,6 +120,7 @@ export default class Weather extends PureComponent {
this.getWeather();
}
});
this.getWeather();
}