Add some appearance/accessibility settings (no ui yet)

This commit is contained in:
David Ralph
2021-02-26 22:46:07 +00:00
parent d79baacc1a
commit 195b7839d0
2 changed files with 39 additions and 10 deletions

View File

@@ -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', '<style>' + css + '</style>');
}
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 (
<React.Fragment>
<Background/>
<ToastContainer position='bottom-right' autoClose={2500} newestOnTop={true} closeOnClick rtl={false} pauseOnFocusLoss />
<ToastContainer position='bottom-right' autoClose={toastDisplayTime} newestOnTop={true} closeOnClick pauseOnFocusLoss />
<div id='center'>
<Navbar openModal={(modal) => this.setState({ [modal]: true })} language={language} />
<Widgets language={language} languagecode={languagecode} />

View File

@@ -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', '<style>' + css + '</style>');
}
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', `
<style>
${url}
* {
font-family: '${data.name}', 'Lexend Deca' !important;
}
</style>`);
}
const zoom = localStorage.getItem('zoom');
if (zoom !== 100) { // don't bother if it's default zoom
document.body.style.zoom = zoom + '%';
}
}
}