2021-09-10 15:38:53 +00:00
|
|
|
import variables from 'modules/variables';
|
2021-08-14 19:10:48 +00:00
|
|
|
import { PureComponent } 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
|
|
|
|
2022-04-13 14:25:50 +00:00
|
|
|
import languages from 'modules/languages.json';
|
2021-04-17 10:17:46 +00:00
|
|
|
|
2021-09-28 22:04:04 +00:00
|
|
|
export default class LanguageSettings extends PureComponent {
|
2021-04-17 10:17:46 +00:00
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
this.state = {
|
2022-04-08 13:48:36 +00:00
|
|
|
quoteLanguages: [
|
|
|
|
{
|
2022-08-26 09:45:32 +00:00
|
|
|
name: variables.getMessage('modals.main.loading'),
|
2022-04-08 13:48:36 +00:00
|
|
|
value: 'loading',
|
|
|
|
},
|
|
|
|
],
|
2021-04-17 10:17:46 +00:00
|
|
|
};
|
2021-04-18 19:51:33 +00:00
|
|
|
this.controller = new AbortController();
|
2021-04-17 10:17:46 +00:00
|
|
|
}
|
|
|
|
|
2022-11-12 01:37:50 +00:00
|
|
|
async getquoteLanguages() {
|
2022-04-08 13:48:36 +00:00
|
|
|
const data = await (
|
|
|
|
await fetch(variables.constants.API_URL + '/quotes/languages', {
|
|
|
|
signal: this.controller.signal,
|
|
|
|
})
|
|
|
|
).json();
|
2021-04-18 19:51:33 +00:00
|
|
|
|
|
|
|
if (this.controller.signal.aborted === true) {
|
|
|
|
return;
|
|
|
|
}
|
2021-04-17 10:17:46 +00:00
|
|
|
|
2023-01-21 12:10:40 +00:00
|
|
|
const quoteLanguages = data.map((language) => {
|
|
|
|
return {
|
|
|
|
name: languages.find((l) => l.value === language.name) ? languages.find((l) => l.value === language.name).name : 'English',
|
|
|
|
value: language,
|
|
|
|
};
|
2021-04-17 10:17:46 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
this.setState({
|
2022-04-08 13:48:36 +00:00
|
|
|
quoteLanguages,
|
2021-04-17 10:17:46 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
componentDidMount() {
|
2021-04-28 13:25:24 +00:00
|
|
|
if (navigator.onLine === false || localStorage.getItem('offlineMode') === 'true') {
|
|
|
|
return this.setState({
|
2022-04-08 13:48:36 +00:00
|
|
|
quoteLanguages: [
|
|
|
|
{
|
2022-08-26 09:45:32 +00:00
|
|
|
name: variables.getMessage('modals.main.marketplace.offline.description'),
|
2022-04-08 13:48:36 +00:00
|
|
|
value: 'loading',
|
|
|
|
},
|
|
|
|
],
|
2021-04-28 13:25:24 +00:00
|
|
|
});
|
|
|
|
}
|
2021-06-13 12:47:18 +00:00
|
|
|
|
2022-11-12 01:37:50 +00:00
|
|
|
this.getquoteLanguages();
|
2021-04-17 10:17:46 +00:00
|
|
|
}
|
|
|
|
|
2021-04-18 19:51:33 +00:00
|
|
|
componentWillUnmount() {
|
|
|
|
// stop making requests
|
|
|
|
this.controller.abort();
|
|
|
|
}
|
|
|
|
|
2021-04-17 10:17:46 +00:00
|
|
|
render() {
|
|
|
|
return (
|
|
|
|
<>
|
2022-04-08 13:48:36 +00:00
|
|
|
<span className="mainTitle">
|
2022-08-26 09:45:32 +00:00
|
|
|
{variables.getMessage('modals.main.settings.sections.language.title')}
|
2022-04-08 13:48:36 +00:00
|
|
|
</span>
|
2022-06-03 20:52:37 +00:00
|
|
|
<div className="languageSettings">
|
2022-04-08 13:48:36 +00:00
|
|
|
<Radio name="language" options={languages} element=".other" />
|
|
|
|
</div>
|
2022-06-03 20:52:37 +00:00
|
|
|
<span className="mainTitle">
|
2022-08-26 09:45:32 +00:00
|
|
|
{variables.getMessage('modals.main.settings.sections.language.quote')}
|
2022-04-08 13:48:36 +00:00
|
|
|
</span>
|
2022-06-03 20:52:37 +00:00
|
|
|
<div className="languageSettings">
|
2022-11-26 21:32:50 +00:00
|
|
|
<Radio
|
|
|
|
name="quoteLanguage"
|
2023-01-21 12:10:40 +00:00
|
|
|
options={this.state.quoteLanguages.map((language) => { return { name: language.name, value: language.value.name }; })}
|
|
|
|
defaultValue={this.state.quoteLanguages[0].name}
|
2022-11-26 21:32:50 +00:00
|
|
|
category="quote"
|
|
|
|
/>
|
2022-04-08 13:48:36 +00:00
|
|
|
</div>
|
2021-04-17 10:17:46 +00:00
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|
2021-03-17 13:01:53 +00:00
|
|
|
}
|