2020-09-17 11:42:02 +00:00
|
|
|
import React from 'react';
|
2021-03-18 16:46:50 +00:00
|
|
|
|
2021-03-20 15:52:27 +00:00
|
|
|
import Radio from '../Radio';
|
2020-09-17 11:42:02 +00:00
|
|
|
|
2021-03-20 12:55:20 +00:00
|
|
|
const languages = require('../../../../../modules/languages.json');
|
2021-04-17 10:17:46 +00:00
|
|
|
|
|
|
|
export default class BackgroundSettings extends React.PureComponent {
|
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
this.state = {
|
|
|
|
quoteLanguages: [{
|
|
|
|
name: window.language.modals.main.loading,
|
|
|
|
value: 'loading'
|
|
|
|
}]
|
|
|
|
};
|
2021-04-18 19:51:33 +00:00
|
|
|
this.controller = new AbortController();
|
2021-04-17 10:17:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
async getQuoteLanguages() {
|
2021-04-18 19:51:33 +00:00
|
|
|
const data = await (await fetch(window.constants.API_URL + '/quotes/languages', { signal: this.controller.signal })).json();
|
|
|
|
|
|
|
|
if (this.controller.signal.aborted === true) {
|
|
|
|
return;
|
|
|
|
}
|
2021-04-17 10:17:46 +00:00
|
|
|
|
|
|
|
let array = [];
|
|
|
|
data.forEach(item => {
|
|
|
|
array.push({
|
|
|
|
name: item,
|
|
|
|
value: item
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
quoteLanguages: array
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
componentDidMount() {
|
2021-04-28 13:25:24 +00:00
|
|
|
if (navigator.onLine === false || localStorage.getItem('offlineMode') === 'true') {
|
|
|
|
return this.setState({
|
|
|
|
quoteLanguages: [{
|
|
|
|
name: window.language.modals.main.marketplace.offline.description,
|
|
|
|
value: 'loading'
|
|
|
|
}]
|
|
|
|
});
|
|
|
|
}
|
2021-04-17 10:17:46 +00:00
|
|
|
this.getQuoteLanguages();
|
|
|
|
}
|
|
|
|
|
2021-04-18 19:51:33 +00:00
|
|
|
componentWillUnmount() {
|
|
|
|
// stop making requests
|
|
|
|
this.controller.abort();
|
|
|
|
}
|
|
|
|
|
2021-04-17 10:17:46 +00:00
|
|
|
render() {
|
|
|
|
const language = window.language.modals.main.settings.sections.language;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<h2>{language.title}</h2>
|
|
|
|
<Radio name='language' options={languages} element='.language' />
|
|
|
|
<h3>{language.quote}</h3>
|
|
|
|
<Radio name='quotelanguage' options={this.state.quoteLanguages} category='quote' />
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
2021-03-17 13:01:53 +00:00
|
|
|
}
|