|
|
@ -1,5 +1,5 @@ |
|
|
|
// 余额管理
|
|
|
|
// 余额管理
|
|
|
|
import React, { useState } from 'react'; |
|
|
|
import React, { useState, useEffect } from 'react'; |
|
|
|
import { View, Text, StyleSheet, Image, ScrollView, TouchableOpacity, Modal, SafeAreaView, StatusBar, Platform } from 'react-native'; |
|
|
|
import { View, Text, StyleSheet, Image, ScrollView, TouchableOpacity, Modal, SafeAreaView, StatusBar, Platform } from 'react-native'; |
|
|
|
import fontSize from '../utils/fontsizeUtils'; |
|
|
|
import fontSize from '../utils/fontsizeUtils'; |
|
|
|
import widthUtils from '../utils/widthUtils'; |
|
|
|
import widthUtils from '../utils/widthUtils'; |
|
|
@ -8,15 +8,18 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack'; |
|
|
|
import { RootStackParamList } from '../navigation/types'; |
|
|
|
import { RootStackParamList } from '../navigation/types'; |
|
|
|
import RechargeScreen from './RechargeScreen'; |
|
|
|
import RechargeScreen from './RechargeScreen'; |
|
|
|
import BackIcon from '../components/BackIcon'; |
|
|
|
import BackIcon from '../components/BackIcon'; |
|
|
|
|
|
|
|
import useUserStore from '../store/user'; |
|
|
|
|
|
|
|
import { rechargeHistory, payApi } from '../services/api/payApi'; |
|
|
|
type BalanceScreenNavigationProp = NativeStackNavigationProp< |
|
|
|
type BalanceScreenNavigationProp = NativeStackNavigationProp< |
|
|
|
RootStackParamList, |
|
|
|
RootStackParamList, |
|
|
|
'Balance' |
|
|
|
'Balance' |
|
|
|
>; |
|
|
|
>; |
|
|
|
|
|
|
|
|
|
|
|
export const BalanceScreen = () => { |
|
|
|
export const BalanceScreen = () => { |
|
|
|
|
|
|
|
const { user } = useUserStore(); |
|
|
|
const navigation = useNavigation<BalanceScreenNavigationProp>(); |
|
|
|
const navigation = useNavigation<BalanceScreenNavigationProp>(); |
|
|
|
const [isModalVisible, setIsModalVisible] = useState(false); |
|
|
|
const [isModalVisible, setIsModalVisible] = useState(false); |
|
|
|
|
|
|
|
const [rechargeHistory, setRechargeHistory] = useState<rechargeHistory[]>([]); |
|
|
|
|
|
|
|
|
|
|
|
const handleOpenModal = () => { |
|
|
|
const handleOpenModal = () => { |
|
|
|
setIsModalVisible(true); |
|
|
|
setIsModalVisible(true); |
|
|
@ -26,6 +29,14 @@ export const BalanceScreen = () => { |
|
|
|
setIsModalVisible(false); |
|
|
|
setIsModalVisible(false); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
const fetchRechargeHistory = async () => { |
|
|
|
|
|
|
|
const response = await payApi.getRechargeHistory(); |
|
|
|
|
|
|
|
setRechargeHistory(response); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
fetchRechargeHistory(); |
|
|
|
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<SafeAreaView style={styles.safeArea}> |
|
|
|
<SafeAreaView style={styles.safeArea}> |
|
|
|
<StatusBar barStyle="dark-content" backgroundColor="#fff" /> |
|
|
|
<StatusBar barStyle="dark-content" backgroundColor="#fff" /> |
|
|
@ -60,13 +71,13 @@ export const BalanceScreen = () => { |
|
|
|
<View style={styles.totalBalanceCard}> |
|
|
|
<View style={styles.totalBalanceCard}> |
|
|
|
<View style={styles.cardContainer}> |
|
|
|
<View style={styles.cardContainer}> |
|
|
|
<View style={styles.financialInfoContainer}> |
|
|
|
<View style={styles.financialInfoContainer}> |
|
|
|
<Text style={styles.largeBlackText}>650,000</Text> |
|
|
|
<Text style={styles.largeBlackText}>{user?.balance}</Text> |
|
|
|
<View style={styles.svgContainer}> |
|
|
|
<View style={styles.svgContainer}> |
|
|
|
{/* SVG or icon replacement */} |
|
|
|
{/* SVG or icon replacement */} |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
<View style={styles.totalSoldInfoContainer}> |
|
|
|
<View style={styles.totalSoldInfoContainer}> |
|
|
|
<Text style={styles.totalSoldeText}>Solde Total (FCFA)</Text> |
|
|
|
<Text style={styles.totalSoldeText}>Solde Total ({user?.currency})</Text> |
|
|
|
<View style={styles.totalBalanceInfoContainer}> |
|
|
|
<View style={styles.totalBalanceInfoContainer}> |
|
|
|
<View style={styles.verticalCenteredTextBox}> |
|
|
|
<View style={styles.verticalCenteredTextBox}> |
|
|
|
<Text style={styles.highlightedText}>50,000</Text> |
|
|
|
<Text style={styles.highlightedText}>50,000</Text> |
|
|
@ -90,87 +101,28 @@ export const BalanceScreen = () => { |
|
|
|
<View style={styles.balanceDetailContainer}> |
|
|
|
<View style={styles.balanceDetailContainer}> |
|
|
|
<Text style={styles.balanceDetailTitle}>Détail du solde</Text> |
|
|
|
<Text style={styles.balanceDetailTitle}>Détail du solde</Text> |
|
|
|
<View style={styles.transactionDetailsContainer1}> |
|
|
|
<View style={styles.transactionDetailsContainer1}> |
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
|
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
|
|
|
|
Frais de transport |
|
|
|
|
|
|
|
</Text> |
|
|
|
|
|
|
|
<Text style={styles.transactionAmountDisplay}>-58 FCFA</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDate}>2025-02-12</Text> |
|
|
|
|
|
|
|
<Text style={styles.shipmentReference}>BR-11-00010</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
{rechargeHistory.map((item) => ( |
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
Frais de transport |
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
</Text> |
|
|
|
{item.payment_method} |
|
|
|
<Text style={styles.transactionAmountDisplay}>-58 FCFA</Text> |
|
|
|
</Text> |
|
|
|
</View> |
|
|
|
<Text style={styles.transactionAmountDisplay}>{item.amount} {item.currency}</Text> |
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
</View> |
|
|
|
<Text style={styles.transactionDate}>2025-02-12</Text> |
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
<Text style={styles.shipmentReference}>BR-11-00010</Text> |
|
|
|
<Text style={styles.transactionDate}>{item.create_time}</Text> |
|
|
|
</View> |
|
|
|
<Text style={styles.shipmentReference}>{item.transaction_id}</Text> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
</View> |
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
))} |
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
|
|
|
|
Frais de transport |
|
|
|
|
|
|
|
</Text> |
|
|
|
|
|
|
|
<Text style={styles.transactionAmountDisplay}>-58 FCFA</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDate}>2025-02-12</Text> |
|
|
|
|
|
|
|
<Text style={styles.shipmentReference}>BR-11-00010</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
|
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
|
|
|
|
Frais de transport |
|
|
|
|
|
|
|
</Text> |
|
|
|
|
|
|
|
<Text style={styles.transactionAmountDisplay}>-58 FCFA</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDate}>2025-02-12</Text> |
|
|
|
|
|
|
|
<Text style={styles.shipmentReference}>BR-11-00010</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionHistoryList}> |
|
|
|
|
|
|
|
{/* Repeated Transaction Details */} |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsPanel}> |
|
|
|
|
|
|
|
<View style={styles.transactionDetailsRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDescriptionBold}> |
|
|
|
|
|
|
|
Frais de transport |
|
|
|
|
|
|
|
</Text> |
|
|
|
|
|
|
|
<Text style={styles.transactionAmountDisplay}>-58 FCFA</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
<View style={styles.transactionInfoRow}> |
|
|
|
|
|
|
|
<Text style={styles.transactionDate}>2025-02-12</Text> |
|
|
|
|
|
|
|
<Text style={styles.shipmentReference}>BR-11-00010</Text> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
{/* Additional transaction panels can be added here */} |
|
|
|
|
|
|
|
</View> |
|
|
|
|
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|
</View> |
|
|
|