import React from "react"; import { View, Text, StyleSheet, TouchableOpacity } from "react-native"; import { useRouter } from "expo-router"; import { useSelector } from "react-redux"; import { RootState } from "@/store/rootReducer"; import Header from "@/components/common/Header"; import CheckCircle from "@/assets/icons/check_circle.svg"; import { useSafeAreaInsets } from "react-native-safe-area-context"; const PaymentConfirmationScreen = () => { const router = useRouter(); const { paymentOrder, due_amount } = useSelector( (state: RootState) => state.payments ); const insets = useSafeAreaInsets(); // Format amount with currency const formatAmount = (amount: number | null) => { if (!amount) return "₹0"; return `₹${amount.toLocaleString("en-IN")}`; }; // Format date const formatDate = (dateString?: string) => { if (!dateString) return new Date().toLocaleString("en-IN", { day: "numeric", month: "long", year: "numeric", hour: "numeric", minute: "2-digit", hour12: true, weekday: "long", }); return new Date(dateString).toLocaleString("en-IN", { day: "numeric", month: "long", year: "numeric", hour: "numeric", minute: "2-digit", hour12: true, weekday: "long", }); }; return (
{formatAmount(paymentOrder?.amount || due_amount)} Payment successful {formatDate(paymentOrder?.transaction_date)} Transaction Details Payment mode {paymentOrder?.payment_mode?.[0] || "UPI"} Paid to {paymentOrder?.upi_handle || "randomupiid@vecpay"} Paid by {paymentOrder?.paid_by_upi_handle || "amar.kesari@vecpay"} Order ID {paymentOrder?.order_id || "1000516861984940"} Transaction ID {paymentOrder?.transaction_id || paymentOrder?.transaction_order_id || "1000516861984940"} RRN {paymentOrder?.payment_reference_id || "1000516861984940"} router.replace("/(tabs)/payments")} > OK ); }; export default PaymentConfirmationScreen; const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: "#f3f4f6", // Light gray background }, contentFrame: { flex: 1, paddingHorizontal: 16, paddingBottom: 16, justifyContent: "space-between", marginTop: 8, }, qrFrame: { backgroundColor: "#fcfcfc", borderRadius: 8, padding: 16, paddingVertical: 32, }, paymentStatusContainer: { alignItems: "center", }, successIconContainer: { marginBottom: 16, alignItems: "center", }, successIcon: { // Icon styling handled by Ionicons }, amountText: { fontSize: 20, fontWeight: "600", color: "#252a34", textAlign: "center", marginBottom: 16, }, statusContainer: { alignItems: "center", gap: 4, }, statusText: { fontSize: 14, color: "#252a34", textAlign: "center", }, dateText: { fontSize: 14, color: "#252a34", textAlign: "center", }, divider: { height: 1, backgroundColor: "#e5e9f0", marginVertical: 24, }, transactionContainer: { gap: 8, }, sectionHeader: { fontSize: 14, fontWeight: "600", color: "#252a34", }, detailRow: { flexDirection: "row", justifyContent: "space-between", alignItems: "flex-start", paddingVertical: 2, }, detailLabel: { fontSize: 14, color: "#252a34", flex: 1, }, detailValue: { fontSize: 14, fontWeight: "600", color: "#252a34", textAlign: "left", flex: 1, }, primaryButton: { backgroundColor: "#008761", height: 40, borderRadius: 4, justifyContent: "center", alignItems: "center", }, buttonText: { color: "#fcfcfc", fontSize: 14, fontWeight: "500", }, });