import React, { useEffect, useState } from "react"; import { View, Text, StyleSheet, TouchableOpacity, ActivityIndicator, ScrollView, Image, Alert, Linking, SafeAreaView, StatusBar, Platform, Modal, } from "react-native"; import { useTranslation } from "react-i18next"; import BackIcon from "../../components/BackIcon"; import MassageIcon from "../../components/MassageIcon"; import fontSize from "../../utils/fontsizeUtils"; import { useNavigation } from "@react-navigation/native"; import { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { useRoute, RouteProp } from "@react-navigation/native"; import { ordersApi, OrderDetailsType } from "../../services/api/orders"; import { payApi, PaymentMethod } from "../../services/api/payApi"; import useUserStore from "../../store/user"; import OrderIcon from "../../components/OrderIcon"; import InfoIcon from "../../components/InfoIcon"; import Progress from "./Progress"; import AddressIcon from "../../components/AddressIcon"; import EditIcon from "../../components/ColorfulEditIcon"; import BrightnessIcon from "../../components/BrightnessIcon"; import PhoneIcon from "../../components/PhoneIcon"; import ShoppingBagIcon from "../../components/ShoppingBagIcon"; import PowerIcon from "../../components/PowerIcon"; import CardIcon from "../../components/ShoppingCartIcon"; import WhatsAppIcon from "../../components/WatchAppIcon"; import { useOrderListStore } from "../../store/orderList"; import CircleOutlineIcon from "../../components/CircleOutlineIcon"; import CheckIcon from "../../components/CheckIcon"; import payMap from "../../utils/payMap"; import PhoneNumberInputModal from "../../screens/BalanceScreen/PhoneNumberInputModal"; // 定义选项类型 interface PaymentOption { id: string; label: string; key: string; } // 定义标签页类型 interface TabType { id: string; label: string; options: PaymentOption[]; } export const OrderDetails = () => { const navigation = useNavigation>(); const { t } = useTranslation(); const route = useRoute< RouteProp< { OrderDetails: { orderId: string; status:number }; }, "OrderDetails" > >(); const [orderDetails, setOrderDetails] = useState(); const [isLoading, setIsLoading] = useState(true); const { deleteOrder, changeOrder,updateOrderShippingInfo } = useOrderListStore(); const [showPaymentModal, setShowPaymentModal] = useState(false); const [selectedPayment, setSelectedPayment] = useState(null); const [currentTab, setCurrentTab] = useState("online"); const [paymentMethods, setPaymentMethods] = useState([]); const [tabs, setTabs] = useState([ { id: "online", label: t("order.payment.online"), options: [], }, { id: "offline", label: t("order.payment.offline"), options: [ { id: "cash", label: t("order.payment.cash") || "Cash", key: "cash" }, { id: "bank", label: t("order.payment.bank") || "Bank Transfer", key: "bank" } ], }, ]); const [selectedCurrency, setSelectedCurrency] = useState("USD"); const [convertedAmount, setConvertedAmount] = useState<{ converted_amount: number; item_key: string; original_amount: number; }[]>([]); const [isConverting, setIsConverting] = useState(false); const { user } = useUserStore(); const [isPaymentLoading, setIsPaymentLoading] = useState(false); const [isPaypalExpanded, setIsPaypalExpanded] = useState(false); const [paymentParams, setPaymentParams] = useState<{ originalAmount: number; amount: number; currency: string; payment_method: string; selectedPriceLabel: string; onCloses?: () => void; } | null>(null); const [showPhoneModal, setShowPhoneModal] = useState(false); const getOrderDetails = async () => { try { setIsLoading(true); const response = await ordersApi.getOrderDetails(route.params.orderId); setOrderDetails(response); } catch (error) { console.error("Error fetching order details:", error); } finally { setIsLoading(false); } }; useEffect(() => { getOrderDetails(); // 获取支付方式 payApi.getCountryPaymentMethods().then((res) => { if (res && res.current_country_methods) { setPaymentMethods(res.current_country_methods); // 更新在线支付选项 setTabs(prev => { const updatedTabs = [...prev]; const onlineTabIndex = updatedTabs.findIndex(tab => tab.id === "online"); if (onlineTabIndex !== -1) { // 将API返回的支付方式转换为选项格式 const options: PaymentOption[] = res.current_country_methods.map(method => ({ id: method.key, label: method.key.charAt(0).toUpperCase() + method.key.slice(1), // 首字母大写 key: method.key })); updatedTabs[onlineTabIndex].options = options; } return updatedTabs; }); } }).catch(error => { console.error("获取支付方式失败:", error); }); }, []); //拨打电话 const callPhone = async (phoneNumber: string) => { const url = `tel:${phoneNumber}`; try { await Linking.openURL(url); // 直接尝试打开拨号界面 } catch (error) { Alert.alert(t("error"), t("order.error.phone_open")); console.error("拨号失败:", error); } }; const onSelectPayment = (paymentId: string) => { if (paymentId !== selectedPayment) { setIsPaypalExpanded(false); } setSelectedPayment(paymentId); if (paymentId === "paypal" && paymentId !== selectedPayment) { setIsPaypalExpanded(true); setIsConverting(true); setSelectedCurrency("USD"); const data = { from_currency: orderDetails?.currency || "", to_currency: "USD", amounts: { total_amount: orderDetails?.total_amount || 0, domestic_shipping_fee: orderDetails?.domestic_shipping_fee || 0, shipping_fee: orderDetails?.shipping_fee || 0, }, }; payApi .convertCurrency(data) .then((res) => { setConvertedAmount(res.converted_amounts_list); setIsConverting(false); }) .catch((error) => { console.error("Currency conversion failed:", error); setIsConverting(false); }); } }; const onSelectCurrency = (currency: string) => { setSelectedCurrency(currency); setIsConverting(true); const data = { from_currency: orderDetails?.currency || "", to_currency: currency, amounts: { total_amount: orderDetails?.total_amount || 0, domestic_shipping_fee: orderDetails?.domestic_shipping_fee || 0, shipping_fee: orderDetails?.shipping_fee || 0, }, }; payApi .convertCurrency(data) .then((res) => { setConvertedAmount(res.converted_amounts_list); setIsConverting(false); }) .catch((error) => { console.error("Currency conversion failed:", error); setIsConverting(false); }); }; const handlePaymentConfirm = async () => { if (!selectedPayment || !orderDetails?.order_id) return; // 如果是mobile_money支付方式,显示电话号码输入模态框 if (selectedPayment === "mobile_money") { // 准备支付参数 const params = { originalAmount: orderDetails.total_amount, amount: orderDetails.total_amount, currency: user?.currency, payment_method: selectedPayment, selectedPriceLabel: orderDetails.total_amount + " " + user?.currency, onCloses: () => setShowPaymentModal(false), // 关闭支付模态框 }; setPaymentParams(params); setShowPhoneModal(true); return; } setIsPaymentLoading(true); const paymentData = { order_id: orderDetails.order_id, payment_method: selectedPayment, currency: selectedPayment === "paypal" ? selectedCurrency : user.currency, total_amount: selectedPayment === "paypal" ? convertedAmount.reduce((acc, item) => acc + item.converted_amount, 0) : orderDetails?.total_amount || 0, actual_amount: selectedPayment === "paypal" ? convertedAmount.reduce((acc, item) => acc + item.converted_amount, 0) : orderDetails?.actual_amount || 0, shipping_fee: selectedPayment === "paypal" ? convertedAmount.find(item => item.item_key === "shipping_fee")?.converted_amount || 0 : orderDetails?.shipping_fee || 0, domestic_shipping_fee: selectedPayment === "paypal" ? convertedAmount.find(item => item.item_key === "domestic_shipping_fee")?.converted_amount || 0 : orderDetails?.domestic_shipping_fee || 0 }; try { await ordersApi.updateOrderPaymentMethod(paymentData) const payData = { order_id: orderDetails.order_id, method: selectedPayment, currency: selectedPayment === "paypal" ? selectedCurrency : user.currency, amount: selectedPayment === "paypal" ? convertedAmount.reduce((acc, item) => acc + item.converted_amount, 0) : orderDetails?.total_amount || 0 }; payApi .getPayInfo(payData) .then((res) => { if (res.success) { setIsPaymentLoading(false); setShowPaymentModal(false); navigation.navigate("Pay", { payUrl: res.payment_url, method: selectedPayment, order_id: orderDetails.order_id, }); }else{ Alert.alert(t("error"), t("pay.payment_failed")); } }) .catch((err) => { Alert.alert(t("error"), t("order.error.payment_update")); setIsPaymentLoading(false); }) .finally(() => { setIsPaymentLoading(false); }); } catch (error) { Alert.alert(t("error"), t("order.error.payment_update")); setIsPaymentLoading(false); } }; // 添加手机号码提交函数 const handlePhoneSubmit = async (phoneNumber: string) => { if (!paymentParams) { return; } // 验证电话号码(添加更严格的验证) if (!phoneNumber || phoneNumber.length < 8) { Alert.alert( t("error"), t("order.error.invalid_phone") ); return; } setIsPaymentLoading(true); try { // 准备请求数据 const paymentData = { order_id: orderDetails?.order_id || "", payment_method: paymentParams.payment_method, currency: paymentParams.currency, total_amount: paymentParams.amount, actual_amount: paymentParams.amount, shipping_fee: 0, domestic_shipping_fee: 0, phone: phoneNumber }; // 更新订单支付方式 await ordersApi.updateOrderPaymentMethod(paymentData); // 创建支付请求 const payData = { order_id: orderDetails?.order_id || "", method: paymentParams.payment_method, currency: paymentParams.currency, amount: paymentParams.amount, phone: phoneNumber }; const response = await payApi.getPayInfo(payData); if (response.success) { setShowPhoneModal(false); setShowPaymentModal(false); // 打开支付页面 navigation.navigate("Pay", { payUrl: response.payment_url, method: paymentParams.payment_method, order_id: orderDetails?.order_id || "", }); } else { Alert.alert(t("error"), t("order.error.payment_update")); } } catch (error) { console.error("Payment error:", error); Alert.alert(t("error"), t("order.error.payment_update")); } finally { setIsPaymentLoading(false); } }; // 添加确定按钮禁用逻辑函数 const isConfirmButtonDisabled = () => { // 如果没有选择支付方式,禁用按钮 if (!selectedPayment) { return true; } // 如果正在进行货币转换,禁用按钮 if (isConverting) { return true; } // 如果选择了Paypal支付方式,但还没有转换结果,禁用按钮 if ( selectedPayment === "paypal" && (convertedAmount.length === 0 || !convertedAmount.find((item) => item.item_key === "total_amount")) ) { return true; } // 其他情况下,启用按钮 return false; }; return ( navigation.goBack()}> {t("order.details")} {isLoading ? ( ) : orderDetails ? ( {t("order.status")} {/* 订单信息 */} {t("order.information")} {t("order.id")} {orderDetails.order_id} {t("order.create_time")} {orderDetails.create_time} {t("order.shipping_type")} {orderDetails.shipping_type === 0 ? t("order.shipping.sea") : t("order.shipping.air")} {/* 配送信息 */} {t("order.delivery_info")} {t("order.warehouse")} {orderDetails.receiver_address} {t("order.contact_after_payment")} {t("order.recipient")} {/* 姓名 */} {orderDetails.receiver_name} {/* 电话 */} {orderDetails.receiver_phone} {/* watchApp */} WhatsApp: {orderDetails.receiver_phone} {/* 商品信息 */} {t("order.product_info")} ({orderDetails.items.length}) {orderDetails.items.map((item, index) => ( {item.product_name} {item.sku_attributes.map((sku, index) => ( {sku.attribute_name}:{sku.attribute_value} ))} {/* {item.product_name} */} {item.total_price} {orderDetails.currency} x{item.quantity} ))} {t("order.add_to_cart")} {/* 价格信息 */} {t("order.price_details")} {/* {t("order.subtotal")} */} {t("order.platform_shipping")} {orderDetails.domestic_shipping_fee} {t("order.international_shipping")} {orderDetails.shipping_fee} {t("order.total")} {orderDetails.total_amount} + ${orderDetails.shipping_fee} {t("order.estimated_shipping")} (COD) {/* 代付款 */} {orderDetails.order_status === 0 && ( { deleteOrder(route.params.orderId); }} > {t("order.cancel")} { setShowPaymentModal(true); }} > {t("order.pay")} )} {/* 待发货 */} {orderDetails.order_status === 1 && ( { callPhone("15903995548"); }} > {t("order.contact_shipping")} { changeOrder(route.params.orderId, 2); navigation.goBack(); }} > {t("order.cancel")} )} {/* 代收货 */} {orderDetails.order_status === 2 && ( {}}> {t("order.check_logistics")} { updateOrderShippingInfo(route.params.orderId,{ shipping_status: 0, shipping_info: { shipping_company: "string", shipping_no: "string", shipping_info: {} } }); navigation.goBack(); }} > {t("order.confirm_receipt")} )} {/* 已完成 */} {orderDetails.order_status === 3 && ( { deleteOrder(route.params.orderId); navigation.goBack(); }} > {t("order.cancel")} {t("order.pay_now")} )} {/* 已取消 */} {orderDetails.order_status === 4 && ( {}}> {t("order.add_to_cart")} {t("order.reorder")} )} ) : ( {t("order.unable_to_load")} )} setShowPaymentModal(false)} > {t("order.select_payment")} setShowPaymentModal(false)} style={styles.closeButtonContainer}> × {tabs.map((tab) => ( setCurrentTab(tab.id)} > {tab.label} ))} {currentTab === "online" ? ( <> {tabs .find((tab) => tab.id === "online") ?.options.map((option) => ( {option.key === "balance" ? ( {t("order.balance_remaining") || "Balance remaining"} {"\n"} {user.balance} {user.currency} ) : ( {option.key === "mobile_money" && ( {paymentMethods.find(method => method.key === option.key)?.value && Array.isArray(paymentMethods.find(method => method.key === option.key)?.value) ? ( (paymentMethods.find(method => method.key === option.key)?.value as string[]).map((item, index) => ( )) ) : ( {paymentMethods.find(method => method.key === option.key)?.value as string} ) } )} )} onSelectPayment(option.id)}> {selectedPayment === option.id && ( )} {/* PayPal Currency Selection */} {selectedPayment === "paypal" && option.id === "paypal" && isPaypalExpanded && ( {t("order.select_currency") || "Select Currency"} onSelectCurrency("USD")} > USD onSelectCurrency("EUR")} > EUR {/* 显示转换后的金额 */} {isConverting ? ( {t("order.converting") || "Converting..."} ) : convertedAmount.length > 0 ? ( {t("order.equivalent_amount") || "Equivalent Amount:"} {convertedAmount .find((item) => item.item_key === "total_amount") ?.converted_amount.toFixed(2)}{" "} {selectedCurrency} ) : null} )} ))} ) : ( {tabs .find((tab) => tab.id === "offline") ?.options.map((option, index) => ( {option.id === "cash" ? ( ) : ( )} onSelectPayment(option.id)} > {selectedPayment === option.id && ( )} ))} )} setShowPaymentModal(false)} > {t("cancel")} {isPaymentLoading ? ( ) : ( {isConverting ? t("order.converting") || "Converting..." : t("order.confirm_payment")} )} {/* PhoneNumberInputModal组件 */} setShowPhoneModal(false)} paymentParams={paymentParams} onSubmit={handlePhoneSubmit} onCloses={() => setShowPaymentModal(false)} /> ); }; const styles = StyleSheet.create({ safeArea: { flex: 1, backgroundColor: '#fff', }, safeAreaContent: { flex: 1, paddingTop: 0, }, container: { flex: 1, backgroundColor: "#f8f9fa", }, header: { flexDirection: "row", justifyContent: "space-between", alignItems: "center", padding: 16, backgroundColor: "#fff", shadowColor: "#000", shadowOffset: { width: 0, height: 2, }, shadowOpacity: 0.1, shadowRadius: 3, elevation: 3, }, title: { fontSize: fontSize(16), fontWeight: "600", }, orderStatus: { paddingInline: 16, marginTop: 10, }, orderStatusContent: { backgroundColor: "#fff", borderRadius: 16, }, orderStatusTitle: { flexDirection: "row", alignItems: "center", borderBottomWidth: 1, borderColor: "#f5f5f5", padding: 10, }, orderStatusTitleText: { fontSize: fontSize(16), fontWeight: "600", marginLeft: 10, }, orderStatusContentPreview: { padding: 10, justifyContent: "center", }, productItem: { flexDirection: "row", width: "100%", borderBottomWidth: 1, borderColor: "#f5f5f5", padding: 10, }, productItemImage: { width: "15%", height: 50, borderRadius: 10, }, productItemInfo: { width: "75%", justifyContent: "space-between", paddingLeft: 10, }, productItemNum: { width: "10%", alignItems: "center", justifyContent: "flex-end", }, productItemNumText: { fontSize: fontSize(16), color: "#999", }, productItemInfoName: { width: "100%", paddingVertical: 5, }, productItemInfoNameText: { fontSize: fontSize(13), fontWeight: "600", }, productItemInfoSkuText: { fontSize: fontSize(13), color: "#999", }, productItemInfoSku: { width: "100%", paddingVertical: 5, }, productItemInfoPrice: { width: "100%", paddingVertical: 5, }, orderStatusContentPreviewInformation: { flexDirection: "row", justifyContent: "space-between", width: "100%", }, loadingContainer: { flex: 1, justifyContent: "center", alignItems: "center", }, orderId: { flexDirection: "row", justifyContent: "space-between", paddingVertical: 10, width: "100%", }, orderIdText: { color: "#999", width: "50%", fontSize: fontSize(14), }, orderIdText1: { width: "50%", textAlign: "right", fontSize: fontSize(14), }, TotalText: { color: "#f77f3a", fontSize: fontSize(18), fontWeight: "600", width: "50%", }, TotalPrice: { color: "#f77f3a", fontSize: fontSize(18), fontWeight: "600", width: "50%", textAlign: "right", }, warehouse: { width: "50%", }, recipientTitle: { paddingVertical: 5, }, recipientPhoneContainer: { flexDirection: "row", alignItems: "center", }, recipient: { width: "50%", }, orderStatusContentPreviewInformationText: { fontSize: fontSize(16), fontWeight: "600", }, warehousePhone: { padding: 5, backgroundColor: "#f9f9f9", borderRadius: 10, width: "90%", flexDirection: "row", alignItems: "center", }, warehousePhoneText: { fontSize: fontSize(14), fontWeight: "400", color: "#3D3D3D", }, warehousePhoneTextContainer: { paddingRight: 5, }, recipientName: { fontSize: fontSize(16), fontWeight: "600", }, recipientPhone: { fontSize: fontSize(14), fontWeight: "400", color: "#3D3D3D", }, dottedLine: { width: "100%", borderBottomWidth: 2, borderColor: "#f5f5f5", borderStyle: "dashed", }, orderRemakeText: { fontSize: fontSize(14), fontWeight: "400", color: "#999", }, addCard: { width: "100%", justifyContent: "center", alignItems: "center", }, addCardBox: { padding: 10, borderWidth: 1, borderColor: "#0098ef", borderRadius: 10, backgroundColor: "#e2f2fd", opacity: 0.5, flexDirection: "row", alignItems: "center", }, addCardText: { fontSize: fontSize(16), fontWeight: "600", color: "#0098ef", marginLeft: 5, }, bottomButtons: { position: "absolute", bottom: 0, width: "100%", flexDirection: "row", justifyContent: "center", alignItems: "center", padding: 10, backgroundColor: "#fff", shadowColor: "#000", shadowOffset: { width: 0, height: -4, }, shadowOpacity: 0.1, shadowRadius: 3, elevation: 3, }, bottomButton1: { padding: 10, marginHorizontal: 10, alignItems: "center", backgroundColor: "#f0f0f0", borderRadius: 5, flex: 1, }, bottomButton: { padding: 10, marginHorizontal: 10, alignItems: "center", backgroundColor: "#fe7f42", borderRadius: 5, flex: 1, }, bottomButtonText: { fontSize: fontSize(18), fontWeight: "600", color: "#fff", }, bottomButtonText1: { fontSize: fontSize(18), fontWeight: "600", color: "#999", }, modalOverlay: { flex: 1, backgroundColor: 'rgba(0, 0, 0, 0.5)', justifyContent: 'flex-end', }, modalContent: { backgroundColor: '#fff', borderTopLeftRadius: 20, borderTopRightRadius: 20, padding: 20, maxHeight: '80%', }, modalHeader: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 20, }, modalTitle: { fontSize: fontSize(18), fontWeight: '600', }, closeButtonContainer: { padding: 5, }, closeButtonText: { fontSize: fontSize(24), color: '#999', }, tabContainer: { flexDirection: 'row', marginBottom: 15, borderBottomWidth: 1, borderBottomColor: '#f5f5f5', }, tab: { paddingVertical: 10, paddingHorizontal: 15, marginRight: 10, }, tabActive: { borderBottomWidth: 2, borderBottomColor: '#FF5100', }, tabText: { fontSize: fontSize(16), color: '#666', }, tabTextActive: { color: '#FF5100', fontWeight: '500', }, paymentOptions: { maxHeight: 300, }, cardContainer: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', padding: 15, backgroundColor: '#F8F8F8', borderRadius: 8, marginBottom: 10, }, iconRow: { flexDirection: 'row', alignItems: 'center', flex: 1, }, imageContainer: { flexDirection: "row", alignItems: "center", flex: 1, }, paymentIconContainer: { marginRight: 10, }, paymentIcon: { fontSize: fontSize(24), marginRight: 8, }, checkboxContainer: { position: "relative", width: fontSize(24), height: fontSize(24), justifyContent: "center", alignItems: "center", }, checkmarkContainer: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, justifyContent: "center", alignItems: "center", }, currencyTitle: { fontSize: fontSize(14), color: '#666', marginBottom: 10, }, paypalExpandedContainer: { backgroundColor: '#f8f8f8', borderRadius: 8, marginTop: -5, marginBottom: 10, paddingHorizontal: 15, paddingBottom: 15, }, paypalCurrencyContainer: { padding: 10, }, currencyButtonsContainer: { flexDirection: 'row', marginBottom: 10, }, currencyButton: { paddingVertical: 8, paddingHorizontal: 15, borderRadius: 20, borderWidth: 1, borderColor: '#ddd', marginRight: 10, }, currencyButtonActive: { backgroundColor: '#FFF0E8', borderColor: '#FF5100', }, currencyButtonText: { fontSize: fontSize(14), color: '#333', }, currencyButtonTextActive: { color: '#FF5100', fontWeight: '600', }, convertingContainer: { flexDirection: 'row', alignItems: 'center', justifyContent: 'flex-end', marginTop: 10, }, convertingText: { fontSize: fontSize(14), color: '#999', marginLeft: 10, }, convertedAmountContainer: { marginTop: 10, }, convertedAmountLabel: { fontSize: fontSize(14), color: '#666', marginBottom: 5, }, convertedAmountValue: { fontSize: fontSize(16), fontWeight: '600', color: '#FF5100', }, actionButtonsContainer: { marginTop: 20, paddingTop: 20, borderTopWidth: 1, borderTopColor: '#f5f5f5', }, actionButtons: { flexDirection: 'row', justifyContent: 'space-between', }, cancelButton: { flex: 1, padding: 15, marginRight: 10, borderRadius: 25, borderWidth: 1, borderColor: '#999', alignItems: 'center', }, confirmButton: { flex: 1, padding: 15, marginLeft: 10, borderRadius: 25, backgroundColor: '#FF5100', alignItems: 'center', }, confirmButtonDisabled: { backgroundColor: '#ccc', }, buttonTextDark: { fontSize: fontSize(16), color: '#666', }, buttonTextWhite: { fontSize: fontSize(16), color: '#fff', fontWeight: '600', }, operatorImage: { width: 80, height: 30, resizeMode: "contain", marginRight: 10, }, mobileMoneyTextContainer: { width: "100%", marginTop: 3, alignItems: "flex-start", flexDirection: "row", }, mobileMoneyImgContainer: { width: 60, height: 22, borderWidth: 0, marginRight: 5, }, mobileMoneyImg: { width: 60, height: 22, borderWidth: 0, }, mobileMoneyText: { fontSize: fontSize(12), color: "#999", }, outerContainer: { width: "100%", }, flexContainer: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", height: 50, paddingRight: 16, paddingLeft: 16, backgroundColor: "white", borderRadius: 5, marginTop: 10, }, imageStyle: { width: 60, height: 22, marginRight: 10, }, verticalAlignEndContent: { flexDirection: "column", alignItems: "flex-end", justifyContent: "center", height: "100%", }, svgContainer: { width: 24, height: 24, }, leftInfo: { flexDirection: "row", alignItems: "center", flex: 1, }, blueBox: { flexDirection: "row", backgroundColor: "#3955f6", paddingHorizontal: 7, paddingLeft: 6, alignItems: "center", borderRadius: 4, }, balanceText: { marginLeft: 17, fontSize: fontSize(11), lineHeight: 14, fontWeight: "500", color: "#333333", }, });