import React, { useState } from 'react'; import { TouchableOpacity, StyleSheet, ActivityIndicator } from 'react-native'; import { DriverTips as DriverTipsController, useUtils, useLanguage, useConfig, useOrder } from 'ordering-components/native'; import { OButton, OInput, OText } from '../shared'; import { DTContainer, DTCard, DTWrapperTips, DTForm, DTLabel, DTWrapperInput } from './styles' import { useTheme } from 'styled-components/native'; const DriverTipsUI = (props: any) => { const { driverTip, driverTipsOptions, optionSelected, isFixedPrice, isDriverTipUseCustom, handlerChangeOption } = props; const theme = useTheme(); const style = StyleSheet.create({ circle: { borderRadius: 20 }, inputStyle: { flex: 1, borderWidth: 1, borderColor: theme.colors.disabled, marginRight: 10 } }) const [{ parsePrice }] = useUtils(); const [, t] = useLanguage(); const [{ configs }] = useConfig(); const [{loading}] = useOrder() const [value, setvalue] = useState(''); const [valueOption,setValueOption] = useState(0) const placeholderCurrency = (configs?.currency_position?.value || 'left') === 'left' ? `${configs?.format_number_currency?.value}0` : `0${configs?.format_number_currency?.value}` const handleChangeDriverTip = (val: any) => { const tip = Number(val) if ((isNaN(tip) || tip < 0)) { setvalue(value) return } setvalue(val) } const handleChangeOptionCustom = (val : any) => { setValueOption(val) handlerChangeOption(val) } return ( {!isDriverTipUseCustom ? ( <> {driverTipsOptions.map((option: any, i: number) => ( handleChangeOptionCustom(option)} > {loading && valueOption === option ? ( ) : ( {`${isFixedPrice ? parsePrice(option) : `${option}%`}`} )} ))} {!driverTipsOptions.includes(driverTip) && driverTip > 0 && ( {t('CUSTOM_DRIVER_TIP_AMOUNT', 'The driver\'s current tip comes from a custom option')} )} ) : ( {t('CUSTOM_DRIVER_TIP_MESSAGE', '100% of these tips go directly to your driver')} { handlerChangeOption(value) setvalue('') }} /> {parseFloat(driverTip || 0) > 0 && ( {t('CURRENT_DRIVER_TIP_AMOUNT', 'Current driver tip amount')}: {parsePrice(driverTip)} )} )} ) } export const DriverTips = (props: any) => { const driverTipsProps = { ...props, UIComponent: DriverTipsUI } return }