import React, { useEffect, useState } from 'react'; import { View, Text, ScrollView, TouchableOpacity, RefreshControl, } from 'react-native'; import { useAppTheme } from '@theme'; import { ScreenHeader } from '@components'; import { WalletIcon, CheckCircleIcon, ClipboardIcon } from '@icons'; import { useNavigation } from '@react-navigation/native'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { AppStackParamList } from '@navigation/navigationTypes'; import { RouteNames } from '@utils/constants'; import { BankAccount } from '@interfaces'; import { getStyles } from './bankDetailsScreen.styles'; import { formatDate, maskAccountNumber } from '@utils'; import { fetchBankAccounts } from '../addBankDetailsScreen'; import { useAppDispatch, useAppSelector } from '@store'; // ── Dummy data — replace with API data later ────────────────────────────────── // const DUMMY_ACCOUNTS: BankAccount[] = [ // { // id: '071e5d96-9e7f-4e57-a79c-593c2e2d0453', // ownerType: 'MERCHANT', // ownerId: 'b2b301a9-bc8f-4b22-b724-78279022dd85', // accountHolderName: 'sddsd', // bankName: 'sddsds', // accountNumber: 'ssdsds', // ifscCode: 'sdssd', // branchName: 'sdssdsd', // isDefault: true, // isVerified: false, // passbookImage: // '/bank-accounts/image/b2b301a9-bc8f-4b22-b724-78279022dd85-1784618982576.png', // createdAt: '2026-07-21T07:29:26.645Z', // updatedAt: '2026-07-21T07:29:42.582Z', // }, // ]; export const BankDetailsScreen: React.FC = () => { const { colors } = useAppTheme(); const styles = getStyles(colors); const navigation = useNavigation>(); const dispatch = useAppDispatch(); const { bankAccounts, isLoading, error } = useAppSelector( state => state.addBankDetails, ); // Replace this state with Redux selector when wiring real API // const [accounts] = useState(bankAccounts); const [refreshing, setRefreshing] = useState(false); useEffect(() => { dispatch(fetchBankAccounts()); }, []); const handleRefresh = () => { setRefreshing(true); dispatch(fetchBankAccounts()) .unwrap() .then(() => setRefreshing(false)) .catch(() => setRefreshing(false)); }; const handleAddAccount = () => { navigation.navigate(RouteNames.AddBankDetails); }; return ( navigation.goBack()} /> } > {/* Summary Banner */} Payout Accounts Manage your bank accounts for receiving earnings {/* Empty State */} {bankAccounts?.length === 0 ? ( No Bank Accounts Add your bank account to start receiving your delivery earnings directly. ) : ( <> {/* Section Header */} Your Accounts {bankAccounts?.length} {/* Account Cards */} {bankAccounts?.map(account => ( {/* Top color strip for default account */} {account.isDefault && } {/* Card Header Row */} {account.bankName} {account.accountHolderName} {/* Status Badges */} {account.isDefault && ( DEFAULT )} {account.isVerified ? 'VERIFIED' : 'PENDING'} {/* Fields Grid */} Account Number {maskAccountNumber(account.accountNumber)} IFSC Code {account.ifscCode || '—'} {account.branchName ? ( Branch {account.branchName} ) : null} Owner Type {account.ownerType || '—'} {/* Card Footer */} Added {formatDate(account.createdAt)} {account.isVerified && ( )} ))} )} {/* Add Bank Account Button */} + Add Bank Account ); }; export default BankDetailsScreen;