import React, { useState } from 'react';
import { TouchableOpacity, StyleSheet } from 'react-native';
import {
DriverTips as DriverTipsController,
useUtils,
useLanguage,
useConfig,
} from 'ordering-components/native';
import { useTheme } from 'styled-components/native';
import { OButton, OInput, OText } from '../shared';
import {
DTContainer,
DTCard,
DTWrapperTips,
DTForm,
DTLabel,
DTWrapperInput
} from './styles'
const DriverTipsUI = (props: any) => {
const {
driverTip,
driverTipsOptions,
isMulti,
isLoading,
cart,
carts,
isDriverTipUseCustom,
handlerChangeOption,
isFixedPrice
} = props;
const [{ parsePrice }] = useUtils();
const theme = useTheme();
const [, t] = useLanguage();
const [{ configs }] = useConfig();
const [customTip, setCustomTip] = useState((!isMulti && isDriverTipUseCustom && !driverTipsOptions.includes(driverTip)) ?? false)
const currentTip = customTip ? parseFloat(driverTip || 0) > 0 : (!customTip && !driverTipsOptions.includes(driverTip) && parseFloat(driverTip || 0)) > 0
const [value, setvalue] = useState('');
const style = StyleSheet.create({
semicircle: {
borderRadius: 8
},
inputStyle: {
flex: 1,
borderRadius: 5,
borderWidth: 1,
borderColor: theme.colors.inputDisabled,
marginRight: 10,
height: 50
}
})
const placeholderCurrency = !isFixedPrice ? `0%` : (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 multiCartTipsAmmout = carts?.reduce((total: any, cart: any) => {
return total + parseFloat(cart?.driver_tip || 0)
}, 0)
return (
{t('CUSTOM_DRIVER_TIP_MESSAGE', '100% of these tips go directly to your driver')}
{driverTipsOptions.map((option: any, i: number) => (
{
if (!isLoading) {
handlerChangeOption(option)
setCustomTip(false)
}
}}
>
{`${isFixedPrice ? parsePrice(option) : `${option}%`}`}
))}
{isDriverTipUseCustom && (
{ !isLoading && setCustomTip(true) }}
>
{t('CUSTOM_TIP', 'Custom')}
)}
{customTip && (
{
handlerChangeOption(value)
setvalue('')
}}
/>
)}
{currentTip && (
{t('CURRENT_DRIVER_TIP_AMOUNT', 'Current driver tip amount')}{!isFixedPrice &&
` (${driverTip}%)`}: {isFixedPrice ? parsePrice(multiCartTipsAmmout ?? driverTip) : parsePrice(multiCartTipsAmmout ?? cart?.driver_tip)}
)}
)
}
export const DriverTips = (props: any) => {
const driverTipsProps = {
...props,
UIComponent: DriverTipsUI
}
return
}