import { View, Text, StyleSheet, ActivityIndicator } from 'react-native'; import NormalInput from '../../../global/normal_input'; import NormalButton from '../../../global/normal_button'; import { useState } from 'react'; import SingleSelectButtonGroup from '../../../global/select_button'; import useSignUpStore from '../../../../providers/signup_form_store'; import PhoneInput from '../../../global/phone_input'; import { authenticationService } from '../../../../service/authService'; import { Alert } from 'react-native'; import useVehicleStore from '../../../../providers/vehicle_store'; type CreateWalletProps = { goToNextPage: () => void; }; const creditCard = '信用卡'; const weChatAliPay = '微信支付/支付寶'; const CreateWallet: React.FC = ({ goToNextPage }) => { const options = [{ label: creditCard }, { label: weChatAliPay }]; const [isLoading, setIsLoading] = useState(false); const [isLoading2, setIsLoading2] = useState(false); const { signUpFormData, setSignUpFormData } = useSignUpStore(); const { vehicleBrand, vehicleModel, BrandID, ModelID, licensePlate, setVehicleBrand, setVehicleModel, setBrandID, setModelID, setLicensePlate } = useVehicleStore(); const handleSelectedChange = (selectedLabel: string) => { setSignUpFormData({ ...signUpFormData, paymentMethod: selectedLabel }); setError(''); }; const handleNextWithSkip = async () => { setIsLoading2(true); try { const result = await authenticationService.signUp(customerData); console.log('handleNextWithSkip in CreateWallet Page, i am sending this customerData', customerData); if (result === true) { goToNextPage(); } else { Alert.alert('註冊錯誤', '註冊過程中出現錯誤,請稍後再試'); } } catch (error) { console.error('Sign up error:', error); setError('註冊過程中出現錯誤,請稍後再試。'); } finally { setIsLoading2(false); } }; const handleNext = async () => { if (signUpFormData.paymentMethod === '' || signUpFormData.phone === '') { setError('請確保所有資料都已填寫。'); } else { setError(''); setIsLoading(true); try { const result = await authenticationService.signUp(customerData); console.log('handleNext in CreateWallet Page, i am sending this customerData', customerData); if (result) { goToNextPage(); } else { Alert.alert('註冊錯誤', '註冊過程中出現錯誤,請稍後再試'); } } catch (error) { setError('註冊過程中出現錯誤,請稍後再試。'); console.error('Sign up error:', error); } finally { setIsLoading(false); } } }; const selectLabelShown = () => { if (signUpFormData.paymentMethod == null) { return null; } else if (signUpFormData.paymentMethod == creditCard) { return creditCard; } else if (signUpFormData.paymentMethod == weChatAliPay) { return weChatAliPay; } }; const phoneFieldPlaceholder = signUpFormData.phone ? signUpFormData.phone : '輸入電話號碼'; const [error, setError] = useState(''); let customerData = { customerBaseInfo: { name: signUpFormData.nickName.trim(), email: signUpFormData.email, password: signUpFormData.password, gender: signUpFormData.gender, birthday: signUpFormData.birthDateDay + '/' + signUpFormData.birthDateMonth + '/11', address: signUpFormData.address, phone: parseInt(signUpFormData.phone, 10), isUberDriver: signUpFormData.isUberDriver }, customerCarInfo: { type_id: ModelID, brand_id: BrandID, licensePlate: signUpFormData.licensePlate } }; return ( <> 請填妥以下資料 { setSignUpFormData({ ...signUpFormData, phone: phone }); }} placeholder={phoneFieldPlaceholder} /> {error && {error}} : 完成} onPress={handleNext} extendedStyle={{}} /> {/* 收起按鈕 */} {/* : 略過} onPress={handleNextWithSkip} extendedStyle={{ backgroundColor: 'transparent' }} buttonPressedStyle={{ backgroundColor: 'transparent' }} /> */} ); }; const styles = StyleSheet.create({ container: { flex: 1, marginHorizontal: 20 }, text: { fontSize: 20, paddingBottom: 10 }, errorMessage: { fontSize: 14, color: '#ff0033', fontWeight: '400', marginLeft: 10, marginBottom: 10 } }); export default CreateWallet;