import React, { Component } from 'react'; import { FlatList, TouchableOpacity } from 'react-native'; import { BlueLoading, BlueText, SafeBlueArea, BlueListItem, BlueCard, BlueNavigationStyle } from '../../BlueComponents'; import PropTypes from 'prop-types'; import { Icon } from 'react-native-elements'; let loc = require('../../loc'); export default class Language extends Component { static navigationOptions = () => ({ ...BlueNavigationStyle(), title: loc.settings.language, }); constructor(props) { super(props); this.state = { isLoading: true, language: loc.getLanguage(), availableLanguages: [ { label: 'English', value: 'en' }, { label: 'Česky (CZ)', value: 'cs_cz' }, { label: 'Croatian (HR)', value: 'hr_hr' }, { label: 'Danish (DK)', value: 'da_dk' }, { label: 'Deutsch (DE)', value: 'de_de' }, { label: 'Español (ES)', value: 'es' }, { label: 'Français (FR)', value: 'fr_fr' }, { label: '日本語 (JP)', value: 'jp_jp' }, { label: 'Nederlands (NL)', value: 'nl_nl' }, { label: 'Portuguese (BR)', value: 'pt_br' }, { label: 'Portuguese (PT)', value: 'pt_pt' }, { label: 'Русский', value: 'ru' }, { label: 'Thai (TH)', value: 'th_th' }, { label: 'Українська', value: 'ua' }, ], }; } async componentDidMount() { this.setState({ isLoading: false, }); } renderItem = ({ item }) => { return ( { console.log('setLanguage', item.value); loc.setLanguage(item.value); loc.saveLanguage(item.value); return this.setState({ language: item.value }); }} > , } : { hideChevron: true })} /> ); }; render() { if (this.state.isLoading) { return ; } return ( `${index}`} data={this.state.availableLanguages} extraData={this.state.availableLanguages} renderItem={this.renderItem} /> When selecting a new language, restarting Blue Wallet may be required for the change to take effect. ); } } Language.propTypes = { navigation: PropTypes.shape({ navigate: PropTypes.func, goBack: PropTypes.func, }), };