farhantock
6 months ago
1 changed files with 65 additions and 0 deletions
@ -0,0 +1,65 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import { StatusBar, View } from 'react-native'; |
||||||
|
import { List, Appbar, useTheme } from 'react-native-paper'; |
||||||
|
import { StyleSheet } from 'react-native'; |
||||||
|
import { useSelector, useDispatch } from 'react-redux'; |
||||||
|
import { setChosenLanguage } from '../appredux/actions'; |
||||||
|
import { strings, changeLanguage } from '../utils/i18n'; |
||||||
|
|
||||||
|
export default function LanguageScreen({ navigation }) { |
||||||
|
const theme = useTheme(); |
||||||
|
const isDarkTheme = theme.dark; |
||||||
|
const dispatch = useDispatch(); |
||||||
|
const { chosenLanguage } = useSelector(state => state.themeReducer); |
||||||
|
|
||||||
|
const onChangeLanguage = (languageKey) => { |
||||||
|
dispatch(setChosenLanguage(languageKey)); |
||||||
|
changeLanguage(languageKey); |
||||||
|
navigation.navigate('App'); |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
<StatusBar |
||||||
|
backgroundColor={isDarkTheme ? theme.colors.surface : theme.colors.white} |
||||||
|
barStyle={isDarkTheme ? 'light-content' : 'dark-content'} |
||||||
|
translucent={true} |
||||||
|
/> |
||||||
|
<Appbar.Header |
||||||
|
mode='center-aligned' |
||||||
|
style={{ backgroundColor: isDarkTheme ? theme.colors.surface : theme.colors.white, elevation: 4 }} |
||||||
|
> |
||||||
|
<Appbar.BackAction |
||||||
|
color={isDarkTheme ? theme.colors.pureWhite : theme.colors.black} |
||||||
|
onPress={() => { navigation.goBack() }} |
||||||
|
/> |
||||||
|
<Appbar.Content |
||||||
|
titleStyle={{ fontWeight: 'bold' }} |
||||||
|
color={isDarkTheme ? theme.colors.pureWhite : theme.colors.black} |
||||||
|
title={strings('profile.languageSetting')} |
||||||
|
/> |
||||||
|
</Appbar.Header> |
||||||
|
<View style={{ flex: 1, backgroundColor: theme.colors.surface }}> |
||||||
|
<View style={styles.container}> |
||||||
|
<List.Item |
||||||
|
title="English" |
||||||
|
left={props => <List.Icon {...props} size={25} icon="translate" />} |
||||||
|
onPress={() => onChangeLanguage('en')} |
||||||
|
/> |
||||||
|
<List.Item |
||||||
|
title="Bahasa Indonesia" |
||||||
|
left={props => <List.Icon {...props} size={25} icon="translate" />} |
||||||
|
onPress={() => onChangeLanguage('id')} |
||||||
|
/> |
||||||
|
</View> |
||||||
|
</View> |
||||||
|
</> |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
const styles = StyleSheet.create({ |
||||||
|
container: { |
||||||
|
flex: 1, |
||||||
|
marginHorizontal: 10 |
||||||
|
}, |
||||||
|
}); |
Loading…
Reference in new issue