import React, { useState } from 'react';
import { TouchableOpacity, StyleSheet, ActivityIndicator, TextStyle, Platform } from 'react-native';
import {
DriverTips as DriverTipsController,
useUtils,
useLanguage,
useConfig,
useOrder
} from 'ordering-components/native';
import { useTheme } from 'styled-components/native';
import { OButton, OButtonGroup, OInput, OText } from '../shared';
import {
DTContainer,
DTCard,
DTWrapperTips,
DTForm,
DTLabel,
DTWrapperInput
} from './styles'
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: 0,
marginRight: 10,
height: 40,
backgroundColor: theme.colors.inputDisabled,
borderRadius: 7.6,
}
})
const [{ parsePrice }] = useUtils();
const [, t] = useLanguage();
const [{ configs }] = useConfig();
const [{ loading }] = useOrder()
const [value, setvalue] = useState(0);
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) => {
let tip = parseFloat(val)
tip = isNaN(tip) ? 0 : tip
setvalue(tip)
}
const handleChangeOptionCustom = (val: any) => {
setValueOption(val)
handlerChangeOption(val)
}
const onChangeTips = (idx: number) => {
const option = driverTipsOptions[idx];
if (loading && valueOption === option) { return }
handleChangeOptionCustom(option);
}
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')}
0 && value !== driverTip) || !value}
onClick={() => {
handlerChangeOption(value)
setvalue(0)
}}
/>
{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
}