import React, { useState } from "react"; import { View, ScrollView, Pressable } from "react-native"; import { Text } from "@/components/ui/text"; import { Card, CardContent } from "@/components/ui/card"; import { EARNINGS_SUMMARY, MOCK_INVOICES } from "@/lib/mock-data"; import { router } from "expo-router"; import { Plus, Send, History as HistoryIcon, BarChart3, ChevronRight, Clock, DollarSign, FileText, } from "@/lib/icons"; import { ScreenWrapper } from "@/components/ScreenWrapper"; import { ShadowWrapper } from "@/components/ShadowWrapper"; import { StandardHeader } from "@/components/StandardHeader"; const statusColor: Record = { Waiting: "bg-amber-500/30 text-amber-600", Paid: "bg-emerald-500/30 text-emerald-600", Draft: "bg-secondary text-muted-foreground", Unpaid: "bg-red-500/30 text-red-600", }; export default function HomeScreen() { const [activeFilter, setActiveFilter] = useState("All"); const filteredInvoices = activeFilter === "All" ? MOCK_INVOICES : MOCK_INVOICES.filter((inv) => inv.status === activeFilter); return ( {/* Balance Card Section */} Available Balance $ {EARNINGS_SUMMARY.balance.toLocaleString()} Pending ${EARNINGS_SUMMARY.waitingAmount.toLocaleString()} Income ${EARNINGS_SUMMARY.paidThisMonth.toLocaleString()} {/* Circular Quick Actions Section */} } label="Scan" onPress={() => router.push("/(tabs)/scan")} /> } label="Send" onPress={() => router.push("/(tabs)/proforma")} /> } label="History" onPress={() => router.push("/(tabs)/history")} /> } label="Analytics" /> {/* Recent Activity Header */} Recent Activity View all {/* Filters */} {["All", "Paid", "Waiting", "Unpaid"].map((filter) => ( setActiveFilter(filter)} className={`rounded-[4px] px-4 py-1.5 ${activeFilter === filter ? "bg-primary" : "bg-card border border-border"}`} > {filter} ))} {/* Transactions List */} {filteredInvoices.length > 0 ? ( filteredInvoices.map((inv) => ( router.push(`/invoices/${inv.id}`)} > {inv.recipient} {inv.dueDate} ยท Proforma ${inv.amount.toLocaleString()} {inv.status} )) ) : ( No transactions found )} ); } function QuickAction({ icon, label, onPress, }: { icon: React.ReactNode; label: string; onPress?: () => void; }) { return ( {icon} {label} ); }