2020-07-15 13:32:59 -04:00
|
|
|
import React, { useState, useEffect, useCallback } from 'react';
|
2020-05-24 12:17:26 +03:00
|
|
|
import { FlatList, StyleSheet } from 'react-native';
|
2020-12-04 13:39:47 +00:00
|
|
|
import { SafeBlueArea, BlueListItem, BlueCard, BlueLoading, BlueNavigationStyle, BlueText } from '../../BlueComponents';
|
2020-06-14 22:09:27 -04:00
|
|
|
import { AvailableLanguages } from '../../loc/languages';
|
2020-07-20 16:38:46 +03:00
|
|
|
import loc from '../../loc';
|
2018-09-30 04:31:09 -04:00
|
|
|
|
2020-08-28 11:05:41 +03:00
|
|
|
const styles = StyleSheet.create({
|
|
|
|
flex: {
|
|
|
|
flex: 1,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
2020-07-15 13:32:59 -04:00
|
|
|
const Language = () => {
|
|
|
|
const [isLoading, setIsLoading] = useState(true);
|
|
|
|
const [language, setLanguage] = useState(loc.getLanguage());
|
2018-09-30 04:31:09 -04:00
|
|
|
|
2020-07-15 13:32:59 -04:00
|
|
|
useEffect(() => {
|
|
|
|
setIsLoading(false);
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
const renderItem = useCallback(
|
|
|
|
({ item }) => {
|
|
|
|
return (
|
2020-09-21 21:53:28 -04:00
|
|
|
<BlueListItem
|
2020-07-15 13:32:59 -04:00
|
|
|
onPress={() => {
|
|
|
|
console.log('setLanguage', item.value);
|
|
|
|
loc.saveLanguage(item.value);
|
|
|
|
setLanguage(item.value);
|
|
|
|
}}
|
|
|
|
title={item.label}
|
|
|
|
{...(language === item.value
|
|
|
|
? {
|
2020-09-21 21:53:28 -04:00
|
|
|
rightIcon: { name: 'check', type: 'octaicon', color: '#0070FF' },
|
2020-07-15 13:32:59 -04:00
|
|
|
}
|
|
|
|
: { hideChevron: true })}
|
2019-01-03 22:28:15 -05:00
|
|
|
/>
|
2020-07-15 13:32:59 -04:00
|
|
|
);
|
|
|
|
},
|
|
|
|
[language],
|
|
|
|
);
|
|
|
|
|
|
|
|
return isLoading ? (
|
2020-11-29 23:18:54 -05:00
|
|
|
<BlueLoading />
|
2020-07-15 13:32:59 -04:00
|
|
|
) : (
|
|
|
|
<SafeBlueArea forceInset={{ horizontal: 'always' }} style={styles.flex}>
|
|
|
|
<FlatList style={styles.flex} keyExtractor={(_item, index) => `${index}`} data={AvailableLanguages} renderItem={renderItem} />
|
|
|
|
<BlueCard>
|
2020-11-22 03:04:04 -05:00
|
|
|
<BlueText>{loc.settings.language_restart}</BlueText>
|
2020-07-15 13:32:59 -04:00
|
|
|
</BlueCard>
|
|
|
|
</SafeBlueArea>
|
|
|
|
);
|
2018-09-30 04:31:09 -04:00
|
|
|
};
|
2020-07-15 13:32:59 -04:00
|
|
|
|
2020-12-04 13:39:47 +00:00
|
|
|
Language.navigationOptions = () => ({
|
|
|
|
...BlueNavigationStyle(),
|
2020-07-15 13:32:59 -04:00
|
|
|
headerTitle: loc.settings.language,
|
|
|
|
});
|
|
|
|
|
|
|
|
export default Language;
|