import React from 'react'; import ExpandMore from '@material-ui/icons/ExpandMore'; import SettingsFunctions from '../../modules/settingsFunctions'; import Checkbox from './settings/Checkbox'; import Slider from './settings/Slider'; import { toast } from 'react-toastify'; 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: console.log('[ERROR] 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)) { let 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) { switch (value) { case 'true': value = true; break; case 'false': value = false; break; default: value = true; } tag.checked = value; } } 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'; /*[1, 2, 3, 4, 5].forEach((index) => { console.log(index) document.getElementsByClassName('choices')[index].style.background = 'black'; })*/ document.getElementById('greetingName').style.color = 'white'; } } 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); } } document.getElementById('bg-input').onchange = (e) => { const reader = new FileReader(); const file = e.target.files[0]; if (file.size > 2000000) return toast('File is over 2MB', '#ff0000', '#ffffff'); reader.addEventListener('load', (e) => { localStorage.setItem('customBackground', e.target.result); document.getElementById('customBackground').src = e.target.result; document.getElementById('customBackground').value = e.target.result; document.getElementById('backgroundImage').setAttribute('style', `-webkit-filter:blur(${localStorage.getItem('blur')}px); background-image: url(${localStorage.getItem('customBackground')}`); document.getElementById('backgroundImage').style.backgroundImage = `url(${localStorage.getItem('customBackground')})` }); reader.readAsDataURL(file); }; /*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}


SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[0], document.getElementsByClassName('expandIcons')[0])}>{this.props.language.time.title}

SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[0], document.getElementsByClassName('expandIcons')[0])} />
  • SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[1], document.getElementsByClassName('expandIcons')[1])}>{this.props.language.greeting.title}

    SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[1], document.getElementsByClassName('expandIcons')[1])} />
    • {this.props.language.greeting.name} this.resetItem('greetingName')}>{this.props.language.reset}

  • SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[2], document.getElementsByClassName('expandIcons')[2])}>{this.props.language.quote.title}

    SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[2], document.getElementsByClassName('expandIcons')[2])} />
  • SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[3], document.getElementsByClassName('expandIcons')[3])}>{this.props.language.background.title}

    SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[3], document.getElementsByClassName('expandIcons')[3])} />

      {this.props.language.background.blur} (%) this.resetItem('blur')}>{this.props.language.reset}

      document.getElementById('blurAmount').innerText = document.getElementById('blurRange').value} />

      {this.props.language.background.brightness} (%) this.resetItem('brightness')}>{this.props.language.reset}

      document.getElementById('brightnessAmount').innerText = document.getElementById('brightnessRange').value} />

      {this.props.language.background.customURL} this.resetItem('customBackground')}>{this.props.language.reset}

      {this.props.language.background.custombackground} this.resetItem('customBackground')}>{this.props.language.reset}

    { /*

      {this.props.language.background.customcolour} this.resetItem('customBackgroundColour')}>Reset

      document.getElementById('customBackgroundHex').innerText = document.getElementById('customBackgroundColour').value}>
    */ }
  • SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[4], document.getElementsByClassName('expandIcons')[4])}>{this.props.language.searchbar.title}

    SettingsFunctions.toggleExtra(document.getElementsByClassName('extraSettings')[4], document.getElementsByClassName('expandIcons')[4])} />

      Custom Search URL this.resetItem('customSearchEngine')}>Reset

  • {this.props.language.offline}

    {this.props.language.experimental.title}

    {this.props.language.experimental.webp}

    {this.props.language.experimental.dark}

    {this.props.language.experimental.animations}

    {this.props.language.language}

    ; } }