import React from 'react' import { LanguageSelector as LanguageSelectorController, useOrder } from 'ordering-components/native' import { Platform, StyleSheet } from 'react-native' import RNRestart from 'react-native-restart' import RNPickerSelect from 'react-native-picker-select' import { Container } from './styles' import { useTheme } from 'styled-components/native' import { LanguageSelectorParams } from '../../types' import MaterialIcons from 'react-native-vector-icons/MaterialIcons' import { I18nManager } from 'react-native' const LanguageSelectorUI = (props: LanguageSelectorParams) => { const [orderState] = useOrder() const { languagesState, currentLanguage, handleChangeLanguage, } = props const theme = useTheme(); const pickerStyle = StyleSheet.create({ inputAndroid: { color: theme.colors.secundaryContrast, borderWidth: 1, borderColor: 'transparent', borderRadius: 15, paddingHorizontal: 10, backgroundColor: theme.colors.inputDisabled, width: 80, }, inputIOS: { color: theme.colors.secundaryContrast, paddingEnd: 20, height: 40, borderWidth: 1, borderColor: 'transparent', borderRadius: 15, paddingHorizontal: 10, backgroundColor: theme.colors.inputDisabled }, icon: { top: Platform.OS === 'ios' ? 10 : 15, right: Platform.OS === 'ios' ? 0 : (I18nManager.isRTL ? 50 : 7), position: 'absolute', fontSize: 20 }, placeholder: { color: theme.colors.secundaryContrast } }) const _languages = languagesState?.languages?.map((language: any) => { return { value: language?.code, label: language?.name, inputLabel: language?.code.toUpperCase() } }) _languages && _languages.sort((a: any, b: any) => (a.label > b.label) ? 1 : ((b.label > a.label) ? -1 : 0) ) const changeDirection = async (language: string) => { if (language !== 'ar') { if (I18nManager.isRTL) { await I18nManager.forceRTL(false) RNRestart.Restart(); } } else { if (!I18nManager.isRTL) { await I18nManager.forceRTL(true) RNRestart.Restart(); } } } const handlerChangeLanguage = (language: string) => { changeDirection(language) handleChangeLanguage(language) } return ( {languagesState?.languages && ( } disabled={orderState.loading} /> )} ) } export const LanguageSelector = (props: LanguageSelectorParams) => { const LanguageProps = { ...props, UIComponent: LanguageSelectorUI } return }