'use client'; import { useState } from 'react'; import { Camera, Save, CheckCircle, Upload, Plus, Trash2, ShieldCheck, CreditCard, Building2, Smartphone, User, MapPin, Phone, Briefcase, Calendar, Mail, FileText, ChevronRight, Edit, Heart, PhoneCall, X, Eye, EyeOff, Lock, Key, Shield, Activity, LogOut, AlertCircle, Trash, Pencil, Home, Banknote, TrashIcon } from 'lucide-react'; import { investors } from '@/data/mockData'; import toast from 'react-hot-toast'; import InvestorNotification from '@/components/InvestorNotification'; import { logout } from '@/lib/auth'; function SectionCard({ title, icon: Icon, children, headerBg = 'bg-slate-50', headerBorder = 'border-slate-100', editKey, editingSection, setEditingSection, onEdit, editForm, setEditForm }: { title: string; icon: any; children: React.ReactNode; headerBg?: string; headerBorder?: string; editKey?: string; editingSection?: string | null; setEditingSection?: (s: string | null) => void; onEdit?: () => void; editForm?: any; setEditForm?: any }) { return (
{investor.id} • {investor.email}
Invested
৳{investor.totalInvested.toLocaleString()}
Earnings
৳{investor.totalEarnings.toLocaleString()}
Withdrawn
৳{investor.totalWithdrawn.toLocaleString()}
Balance
৳{currentBalance.toLocaleString()}
Bikes
{investor.activeBikes}
Pending
৳{investor.pendingEarnings.toLocaleString()}
Full Name
{investor.name}
Phone
{investor.phone}
Alternate Phone
{investor.phoneAlt || '-'}
{investor.email}
NID Number
{investor.nidNumber || '-'}
TIN Number
{investor.tinNumber || '-'}
Date of Birth
{investor.dateOfBirth || '-'}
Gender
{investor.gender || '-'}
Occupation
{investor.occupation || '-'}
Blood Group
{(investor as any).bloodGroup || '-'}
Marital Status
{(investor as any).maritalStatus || '-'}
Religion
{(investor as any).religion || '-'}
Nationality
{(investor as any).nationality || 'Bangladeshi'}
Company / Business Name
{(investor as any).companyName || '-'}
Monthly Income
{(investor as any).monthlyIncome || '-'}
Investment Source
{(investor as any).investmentSource || '-'}
Profession / Occupation
{investor.occupation || '-'}
Address Line 1
{investor.address}
Landmark
-
Division
Dhaka
District
Dhaka
Thana
-
Zip Code
1205
Address Line 1
{investor.address}
Landmark
-
Division
Dhaka
District
Dhaka
Thana
-
Zip Code
1205
{investor.notes || 'No notes added yet.'}
)}Nominee Name
{(investor as any).nomineeName || '-'}
Relationship
{(investor as any).nomineeRelation || '-'}
NID Number
{(investor as any).nomineeNid || '-'}
Phone
{(investor as any).nomineePhone || '-'}
{(investor as any).nomineeEmail || '-'}
Share %
{(investor as any).nomineeShare || '-'}
Address
{(investor as any).nomineeAddress || '-'}
Contact Name
{investor.emergencyContactName || '-'}
Relationship
{investor.emergencyContactRelation || '-'}
Phone
{investor.emergencyContactPhone || '-'}
{(investor as any).emergencyEmail || '-'}
Address
{(investor as any).emergencyAddress || '-'}
{account.bankName}
{account.branch}
No bank accounts added
{(investor as any).mobileBanking}
{(investor as any).mobileBankingNumber}
{mb.provider}
{mb.number}
No mobile banking added
TIN
{investor.tinNumber}
Passport
{(investor as any).passportNumber}
No tax info added
Status: {investor.kycStatus.toUpperCase()}
{investor.kycStatus === 'verified' ? 'All documents verified' : 'Documents under review'}
{doc.type}
{doc.number || 'Document uploaded'}
Add extra security
Requires code from phone when logging in
{session.device}
{session.current && Current}{session.location} • {session.time}
Use a strong password with letters, numbers, and symbols to protect your account from unauthorized access.
Are you sure you want to delete this bank account?
{bankToDelete.bankName}
{bankToDelete.accountNumber}
Are you sure you want to delete this mobile banking account?
{mobileToDelete.provider}
{mobileToDelete.number}
Click to upload or drag and drop
PDF, JPG, PNG (max 5MB)
> )} { const file = e.target.files?.[0]; if (file) setUploadDocForm({ ...uploadDocForm, docFile: file }); }} />Your request to {approvalModalConfig.actionType} your {approvalModalConfig.fieldName} has been successfully sent to JAIBEN administrators.
For security reasons, all updates to bank credentials, mobile wallets, or tax IDs require manual review. You will be notified once our team verifies the changes.