// 余额管理 import React, { useState } from 'react'; import { View, Text, StyleSheet, Image, ScrollView, TouchableOpacity, Modal, SafeAreaView, StatusBar, Platform } from 'react-native'; import fontSize from '../utils/fontsizeUtils'; import widthUtils from '../utils/widthUtils'; import { useNavigation } from '@react-navigation/native'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { RootStackParamList } from '../navigation/types'; import RechargeScreen from './RechargeScreen'; import BackIcon from '../components/BackIcon'; type BalanceScreenNavigationProp = NativeStackNavigationProp< RootStackParamList, 'Balance' >; export const BalanceScreen = () => { const navigation = useNavigation(); const [isModalVisible, setIsModalVisible] = useState(false); const handleOpenModal = () => { setIsModalVisible(true); }; const handleCloseModal = () => { setIsModalVisible(false); }; return ( navigation.goBack()} > Mon Solde Mon Solde 650,000 {/* SVG or icon replacement */} Solde Total (FCFA) 50,000 Bientôt expiré (FCFA) 2025-05-09 Date limite Rechargez maintenant Détail du solde {/* Repeated Transaction Details */} Frais de transport -58 FCFA 2025-02-12 BR-11-00010 {/* Additional transaction panels can be added here */} {/* Repeated Transaction Details */} Frais de transport -58 FCFA 2025-02-12 BR-11-00010 {/* Additional transaction panels can be added here */} {/* Repeated Transaction Details */} Frais de transport -58 FCFA 2025-02-12 BR-11-00010 {/* Additional transaction panels can be added here */} {/* Repeated Transaction Details */} Frais de transport -58 FCFA 2025-02-12 BR-11-00010 {/* Additional transaction panels can be added here */} {/* Repeated Transaction Details */} Frais de transport -58 FCFA 2025-02-12 BR-11-00010 {/* Additional transaction panels can be added here */} ); }; const styles = StyleSheet.create({ safeArea: { flex: 1, backgroundColor: '#fff', }, safeAreaContent: { flex: 1, paddingTop: 0, }, container: { flex: 1, backgroundColor: '#f0f0f0', }, header: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingHorizontal: 15, paddingVertical: 10, backgroundColor: 'white', borderBottomWidth: 1, borderBottomColor: '#f0f0f0', }, backButton: { padding: 5, }, headerTitle: { fontSize: fontSize(18), fontWeight: '600', textAlign: 'center', }, placeholder: { width: widthUtils(24, 24).width, }, balanceCard: { display: 'flex', flexDirection: 'column', width: '100%', backgroundColor: '#f0f0f0', }, sunriseGradientContainer: { backgroundColor: 'linear-gradient(180deg, rgba(255, 119, 0, 1) 0%, rgba(255, 77, 0, 1) 100%)', flexDirection: 'column', alignItems: 'stretch', }, timeContainer: { height: widthUtils(43, 43).height, paddingTop: 21, }, timeContainer2: { flexDirection: 'row', justifyContent: 'space-between', }, timeContainer1: { flexDirection: 'row', justifyContent: 'center', }, timeDisplay: { fontSize: fontSize(17), fontWeight: 'bold', color: 'white', }, timeIndicatorContainer: { width: widthUtils(10, 124).width, height: widthUtils(10, 124).height, }, timeDisplayContainer: { width: widthUtils(13,153).width, height: widthUtils(13,153).height, }, balanceWidget: { flexDirection: 'row', justifyContent: 'space-between', padding: 9, }, balanceText: { fontSize: fontSize(32), fontWeight: 'bold', color: 'white', }, balanceImage: { width: widthUtils(139, 139).width, height: widthUtils(139, 139).height, }, balanceDetailsContainer: { marginTop: -53, flexDirection: 'column', }, totalBalanceCard: { paddingLeft: 20, paddingRight: 20, paddingTop: 20, }, cardContainer: { backgroundColor: 'white', borderRadius: 10, padding: 20, shadowColor: 'rgba(186, 186, 186, 0.25)', shadowOffset: { width: 2, height: 4 }, shadowOpacity: 0.7, }, financialInfoContainer: { flexDirection: 'row', justifyContent: 'space-between', }, largeBlackText: { fontSize: fontSize(36), fontWeight: 'bold', color: 'black', }, svgContainer: { width: widthUtils(24, 24).width, height: widthUtils(24, 24).height, color: '#019847', }, totalSoldInfoContainer: { marginTop: 7, }, totalSoldeText: { fontSize: fontSize(14), color: '#7c7c7c', }, totalBalanceInfoContainer: { flexDirection: 'row', justifyContent: 'space-between', marginTop: 22, }, verticalCenteredTextBox: { flexDirection: 'column', justifyContent: 'center', width: '54.21%', }, highlightedText: { fontSize: fontSize(20), fontWeight: 'bold', color: '#fe1e00', }, expirationInfo: { fontSize: fontSize(14), color: '#7c7c7c', }, deadlineInfoContainer: { flexDirection: 'column', justifyContent: 'center', width: '45.79%', }, deadlineText: { fontSize: fontSize(20), fontWeight: 'bold', color: 'black', }, transactionDetailsContainer: { paddingLeft: 20, paddingRight: 20, paddingBottom: 20, }, balanceDetailContainer: { marginTop: 37, }, balanceDetailTitle: { fontSize: fontSize(20), fontWeight: 'bold', color: 'black', marginBottom: 10, }, transactionDetailsContainer1: { flexDirection: 'column', }, transactionHistoryList: { flexDirection: 'column', }, transactionDetailsPanel: { flexDirection: 'column', padding: 15.5, borderBottomWidth: 1, borderBottomColor: '#dddddd', borderStyle: 'dashed', backgroundColor: '#FFFFFF', }, transactionDetailsRow: { flexDirection: 'row', justifyContent: 'space-between', }, transactionDescriptionBold: { fontSize: fontSize(15), fontWeight: 'bold', color: 'black', }, transactionAmountDisplay: { fontSize: fontSize(24), fontWeight: 'bold', color: '#002fa7', }, transactionInfoRow: { flexDirection: 'row', justifyContent: 'space-between', marginTop: 7, }, transactionDate: { fontSize: fontSize(13), color: '#7f7e7e', }, shipmentReference: { fontSize: fontSize(13), color: '#353029', }, buttonContainer: { borderRadius: 25, width: widthUtils(50, 300).width, height: widthUtils(50, 300).height, justifyContent: 'center', alignItems: 'center', marginTop: 30, }, button: { width: '100%', height: '100%', justifyContent: 'center', alignItems: 'center', borderRadius: 25, }, buttonText: { fontSize: fontSize(16), fontWeight: '600', color: 'white', textAlign: 'center', }, modalContainer: { flex: 1, backgroundColor: 'rgba(0, 0, 0, 0.5)', justifyContent: 'flex-end', }, modalContent: { height: '90%', backgroundColor: '#FFFFFF', borderTopLeftRadius: 20, borderTopRightRadius: 20, }, });