import React from 'react'; import SettingsFunctions from '../../modules/settingsFunctions'; import Checkbox from './settings/Checkbox'; import Slider from './settings/Slider'; import Section from './settings/Section'; import { toast } from 'react-toastify'; import BackgroundSettings from './settings/sections/BackgroundSettings'; import ExperimentalSettings from './settings/sections/ExperimentalSettings'; import SearchSettings from './settings/sections/SearchSettings'; import LanguageSettings from './settings/sections/LanguageSettings'; export default class Settings extends React.PureComponent { resetItem(key) { switch (key) { case 'greetingName': document.getElementById('greetingName').value = ''; break; case 'customBackgroundColour': localStorage.setItem('customBackgroundColour', ''); document.getElementById('customBackgroundColour').enabled = 'false'; break; case 'customBackground': document.getElementById('customBackground').value = ''; break; case 'blur': localStorage.setItem('blur', 0); document.getElementById('blurRange').value = 0; document.getElementById('blurAmount').innerText = '0'; break; case 'brightness': localStorage.setItem('brightness', 100); document.getElementById('brightnessRange').value = 100; document.getElementById('brightnessAmount').innerText = '100'; break; case 'customSearchEngine': document.getElementById('searchEngine').value = 'DuckDuckGo'; break; default: toast('resetItem requires a key!'); } toast(this.props.toastLanguage.reset); } updateCurrent() { document.getElementById('greetingName').value = localStorage.getItem('greetingName'); document.getElementById('customBackground').value = localStorage.getItem('customBackground'); document.getElementById('backgroundAPI').value = localStorage.getItem('backgroundAPI'); document.getElementById('language').value = localStorage.getItem('language'); document.getElementById('searchEngine').value = localStorage.getItem('searchEngine'); // document.getElementById('backgroundImage').style.backgroundUrl = localStorage.getItem('customBackground'); for (const key of Object.keys(localStorage)) { const value = localStorage.getItem(key); if (key === 'blur') { document.getElementById('blurAmount').innerText = value; document.getElementById('blurRange').value = value; } if (key === 'brightness') { document.getElementById('brightnessAmount').innerText = value; document.getElementById('brightnessRange').value = value; } const tag = document.getElementById(`${key}Status`); if (tag) tag.checked = (value === 'true'); } if (localStorage.getItem('darkTheme') === 'true') { document.getElementById('blurRange').style.background = '#535c68'; document.getElementById('brightnessRange').style.background = '#535c68'; document.getElementById('customBackground').style.color = 'white'; document.getElementById('backgroundAPI').style.color = 'white'; document.getElementById('searchEngine').style.color = 'white'; document.getElementById('language').style.color = 'white'; document.getElementById('greetingName').style.color = 'white'; const choices = document.getElementsByClassName('choices'); for (let i = 0; i < choices.length; i++) choices[i].style.backgroundColor = '#2f3542'; } } componentDidMount() { this.updateCurrent(); document.getElementById('file-input').onchange = (e) => { const file = e.target.files[0]; if (file.type !== 'application/json') return console.error(`expected json, got ${file.type}`); const reader = new FileReader(); reader.readAsText(file, 'UTF-8'); reader.onload = (readerEvent) => { const content = JSON.parse(readerEvent.target.result); for (const key of Object.keys(content)) localStorage.setItem(key, content[key]); toast(this.props.toastLanguage.imported_settings); }; }; /*const hex = localStorage.getItem('customBackgroundColour'); if (!hex === '') { document.getElementById('customBackgroundColour').value = hex; document.getElementById('customBackgroundHex').innerText = hex; }*/ document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); document.getElementById('center').classList.toggle('backgroundEffects'); } componentWillUnmount() { document.getElementById('backgroundImage').classList.toggle('backgroundEffects'); document.getElementById('center').classList.toggle('backgroundEffects'); } render() { // let expandClassList = ''; //if (localStorage.getItem('animations') === 'true') expandClassList = 'all 0.5 ease 0s'; return
×

{this.props.modalLanguage.title}


    {this.props.language.greeting.name} this.resetItem('greetingName')}>{this.props.language.reset}

this.resetItem(item)}/>
this.resetItem(item)}/>

{this.props.language.offline}

{this.props.language.experimental.dark}

; } }