import variables from 'modules/variables'; import { PureComponent, Fragment } from 'react'; import { Cancel } from '@mui/icons-material'; import Checkbox from '../Checkbox'; import Switch from '../Switch'; import Slider from '../Slider'; import Dropdown from '../Dropdown'; export default class QuoteSettings extends PureComponent { getMessage = (text) => variables.language.getMessage(variables.languagecode, text); constructor() { super(); this.state = { quoteType: localStorage.getItem('quoteType') || 'api', customQuote: this.getCustom() }; } marketplaceType = () => { if (localStorage.getItem('quote_packs')) { return ; } } resetCustom = () => { localStorage.setItem('customQuote', '[{"quote": "", "author": ""}]'); this.setState({ customQuote: [{ quote: '', author: '' }] }); toast(this.getMessage('toasts.reset')); EventBus.dispatch('refresh', 'background'); } customQuote(e, text, index, type) { const result = (text === true) ? e.target.value : e.target.result; const customQuote = this.state.customQuote; customQuote[index][type] = result; this.setState({ customQuote }); this.forceUpdate(); localStorage.setItem('customQuote', JSON.stringify(customQuote)); document.querySelector('.reminder-info').style.display = 'block'; localStorage.setItem('showReminder', true); } modifyCustomQuote(type, index) { const customQuote = this.state.customQuote; if (type === 'add') { customQuote.push({ quote: '', author: '' }); } else { customQuote.splice(index, 1); } this.setState({ customQuote }); this.forceUpdate(); localStorage.setItem('customQuote', JSON.stringify(customQuote)); } getCustom() { let data = JSON.parse(localStorage.getItem('customQuote')); if (data === null) { data = [{ quote: localStorage.getItem('customQuote') || '', author: localStorage.getItem('customQuoteAuthor') || '' }]; } return data; } render() { let customSettings; if (this.state.quoteType === 'custom') { customSettings = ( <>

{this.getMessage('modals.main.settings.sections.quote.custom')} {this.getMessage('modals.main.settings.buttons.reset')}

{this.state.customQuote.map((_url, index) => ( this.customQuote(e, true, index, 'quote')}> this.customQuote(e, true, index, 'author')}> {this.state.customQuote.length > 1 ? : null}

))} ); } else { // api customSettings = ( <>

); } return ( <>

{this.getMessage('modals.main.settings.sections.quote.title')}

this.setState({ quoteType: value })} category='quote'> {this.marketplaceType()} {customSettings}

{this.getMessage('modals.main.settings.sections.quote.buttons.title')}

); } }