import variables from 'modules/variables'; import React, { PureComponent } from 'react'; import { MdCancel, MdAdd, MdSource, MdOutlineKeyboardArrowRight, MdOutlineFormatQuote, } from 'react-icons/md'; import TextareaAutosize from '@mui/material/TextareaAutosize'; import Header from '../Header'; import Checkbox from '../Checkbox'; import Dropdown from '../Dropdown'; import SettingsItem from '../SettingsItem'; import { toast } from 'react-toastify'; import EventBus from 'modules/helpers/eventbus'; export default class QuoteSettings extends PureComponent { constructor() { super(); this.state = { quoteType: localStorage.getItem('quoteType') || 'api', customQuote: this.getCustom(), sourceSection: false, }; } marketplaceType = () => { if (localStorage.getItem('quote_packs')) { return ( ); } }; resetCustom = () => { localStorage.setItem('customQuote', '[{"quote": "", "author": ""}]'); this.setState({ customQuote: [ { quote: '', author: '', }, ], }); toast(variables.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 = 'flex'; 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 = []; } return data; } render() { let customSettings; if (this.state.quoteType === 'custom' && this.state.sourceSection === true) { customSettings = ( <> {this.state.customQuote.length !== 0 ? (
{this.state.customQuote.map((_url, index) => (
this.customQuote(e, true, index, 'quote')} varient="outlined" style={{ fontSize: '22px', fontWeight: 'bold' }} /> this.customQuote(e, true, index, 'author')} varient="outlined" />
))}
) : (
{variables.getMessage('modals.main.settings.sections.quote.no_quotes')} {variables.getMessage('modals.main.settings.sections.message.add_some')}
)} ); } else { // api customSettings = <>; } return ( <> {this.state.sourceSection ? ( this.setState({ sourceSection: false })}> {variables.getMessage('modals.main.settings.sections.quote.title')} {' '} {variables.getMessage('modals.main.settings.sections.background.source.title')} ) : (
)}
this.setState({ sourceSection: true })}>
{variables.getMessage('modals.main.settings.sections.background.source.title')} {variables.getMessage('modals.main.settings.sections.quote.source_subtitle')}
this.setState({ quoteType: value })} category="quote" > {this.marketplaceType()}
{!this.state.sourceSection ? ( <> ) : null} {customSettings} ); } }