import React, { useState } from "react"; import { Users, DollarSign, TrendingUp, Link2, Copy, Search, Filter, Download, Calendar, CheckCircle, Clock, MoreVertical, } from "lucide-react"; interface Referral { name: string; email: string; date: string; earnings: string; status: "Active" | "Pending"; signupDate: string; totalCommission: string; country: string; } const referrals: Referral[] = [ { name: "John Doe", email: "john@example.com", date: "2025-09-20", earnings: "$50", status: "Active", signupDate: "2025-08-15", totalCommission: "$450", country: "United States", }, { name: "Jane Smith", email: "jane@example.com", date: "2025-09-18", earnings: "$20", status: "Pending", signupDate: "2025-09-10", totalCommission: "$20", country: "Canada", }, { name: "Michael Chen", email: "michael@example.com", date: "2025-09-15", earnings: "$120", status: "Active", signupDate: "2025-07-22", totalCommission: "$890", country: "Singapore", }, { name: "Sarah Johnson", email: "sarah@example.com", date: "2025-09-12", earnings: "$85", status: "Active", signupDate: "2025-06-30", totalCommission: "$1,240", country: "United Kingdom", }, { name: "David Williams", email: "david@example.com", date: "2025-09-25", earnings: "$15", status: "Pending", signupDate: "2025-09-20", totalCommission: "$15", country: "Australia", }, ]; const Referrals: React.FC = () => { const [searchTerm, setSearchTerm] = useState(""); const [copied, setCopied] = useState(false); const referralLink = "https://affiliatepro.com/ref/ABC123"; const handleCopy = () => { navigator.clipboard.writeText(referralLink); setCopied(true); setTimeout(() => setCopied(false), 2000); }; const stats = [ { label: "Total Referrals", value: "5", icon: Users, color: "bg-blue-500", change: "+12% from last month", }, { label: "Active Referrals", value: "3", icon: CheckCircle, color: "bg-green-500", change: "60% conversion rate", }, { label: "Total Earnings", value: "$2,615", icon: DollarSign, color: "bg-purple-500", change: "+$450 this month", }, { label: "Avg. Per Referral", value: "$523", icon: TrendingUp, color: "bg-orange-500", change: "+18% growth", }, ]; const filteredReferrals = referrals.filter( (r) => r.name.toLowerCase().includes(searchTerm.toLowerCase()) || r.email.toLowerCase().includes(searchTerm.toLowerCase()) ); return (
Track and manage your affiliate referrals
Share this link to earn commissions
| Referral | Signup Date | Country | Last Earnings | Total Commission | Status | |
|---|---|---|---|---|---|---|
|
{r.name.charAt(0)}
{r.name}
{r.email}
|
|
{r.country} |
{r.date}
|
{r.totalCommission} |
{r.status === "Active" ? (
|