diff --git a/src/App.jsx b/src/App.jsx index 28699e53..8f80bcc0 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -38,16 +38,9 @@ export default class App extends React.PureComponent { welcomeModal: true }); } + + SettingsFunctions.loadSettings(); - const css = localStorage.getItem('customcss'); - if (css) { - document.head.insertAdjacentHTML('beforeend', ''); - } - - if (localStorage.getItem('darkTheme') === 'true') { - document.getElementsByClassName('Toastify')[0].classList.add('dark'); - } - // These lines of code prevent double clicking the page or pressing CTRL + A from highlighting the page document.addEventListener('mousedown', (event) => { if (event.detail > 1) { @@ -92,10 +85,12 @@ export default class App extends React.PureComponent { const languagecode = localStorage.getItem('language') || 'en'; const language = merge(require('./translations/en.json'), require(`./translations/${languagecode}.json`)); + const toastDisplayTime = localStorage.getItem('toastDisplayTime') || 2500; + return ( - +
this.setState({ [modal]: true })} language={language} /> diff --git a/src/modules/helpers/settings.js b/src/modules/helpers/settings.js index 23387548..4db6021e 100644 --- a/src/modules/helpers/settings.js +++ b/src/modules/helpers/settings.js @@ -74,4 +74,38 @@ export default class SettingsFunctions { localStorage.setItem('firstRun', true); window.location.reload(); } + + static loadSettings() { + const css = localStorage.getItem('customcss'); + if (css) { + document.head.insertAdjacentHTML('beforeend', ''); + } + + if (localStorage.getItem('darkTheme') === 'true') { + document.getElementsByClassName('Toastify')[0].classList.add('dark'); + } + + const font = localStorage.getItem('font'); + if (font) { + const data = JSON.parse(font); + + let url = ''; + if (data.google === true) { + url = `@import url('https://fonts.googleapis.com/css2?family=${data.name}&display=swap');`; + } + + document.head.insertAdjacentHTML('beforeend', ` + `); + } + + const zoom = localStorage.getItem('zoom'); + if (zoom !== 100) { // don't bother if it's default zoom + document.body.style.zoom = zoom + '%'; + } + } } \ No newline at end of file