diff --git a/src/app/admin/agents/create/page.tsx b/src/app/admin/agents/create/page.tsx new file mode 100644 index 0000000..31f65d2 --- /dev/null +++ b/src/app/admin/agents/create/page.tsx @@ -0,0 +1,66 @@ +'use client'; + +import { useState } from 'react'; +import { useRouter } from 'next/navigation'; +import PageHeader from '@/components/PageHeader'; + +export default function CreateAgentPage() { + const router = useRouter(); + const [saving, setSaving] = useState(false); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setSaving(true); + await new Promise((r) => setTimeout(r, 1000)); + setSaving(false); + router.push('/admin/agents'); + }; + + return ( +
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+ ); +} diff --git a/src/app/admin/agents/page.tsx b/src/app/admin/agents/page.tsx new file mode 100644 index 0000000..b596a03 --- /dev/null +++ b/src/app/admin/agents/page.tsx @@ -0,0 +1,70 @@ +'use client'; + +import { useState } from 'react'; +import Link from 'next/link'; +import PageHeader from '@/components/PageHeader'; +import StatusBadge from '@/components/StatusBadge'; +import EmptyState from '@/components/EmptyState'; + +const mockAgents = [ + { id: 1, firstName: 'Mehdi', lastName: 'Rezaei', phoneNumber: '09151234567', email: 'mehdi@example.com', role: 'agent', status: 'active', description: 'Delivery agent' }, + { id: 2, firstName: 'Narges', lastName: 'Karimi', phoneNumber: '09161234567', email: 'narges@example.com', role: 'agent', status: 'active', description: 'Pickup agent' }, +]; + +export default function AgentsPage() { + const [search, setSearch] = useState(''); + + const filtered = mockAgents.filter((a) => + `${a.firstName} ${a.lastName} ${a.phoneNumber}`.toLowerCase().includes(search.toLowerCase()) + ); + + return ( +
+ + +
+ + setSearch(e.target.value)} className="form-input pl-10" /> +
+ + {filtered.length > 0 ? ( +
+ + + + + + + + + + + + + + {filtered.map((a) => ( + + + + + + + + + + ))} + +
IDNamePhoneEmailRoleStatusActions
#{a.id}{a.firstName} {a.lastName}{a.phoneNumber}{a.email}{a.role} + View +
+
+ ) : ( + + )} +
+ ); +} diff --git a/src/app/admin/benefactors/[id]/edit/page.tsx b/src/app/admin/benefactors/[id]/edit/page.tsx new file mode 100644 index 0000000..1075b96 --- /dev/null +++ b/src/app/admin/benefactors/[id]/edit/page.tsx @@ -0,0 +1,93 @@ +'use client'; + +import { useState } from 'react'; +import Link from 'next/link'; +import PageHeader from '@/components/PageHeader'; + +export default function EditBenefactorPage({ params }: { params: { id: string } }) { + const [saving, setSaving] = useState(false); + const [saved, setSaved] = useState(false); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setSaving(true); + // Simulate API call + await new Promise((r) => setTimeout(r, 1000)); + setSaving(false); + setSaved(true); + setTimeout(() => setSaved(false), 3000); + }; + + return ( +
+ + + {saved && ( +
+ + Benefactor updated successfully! +
+ )} + +
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ +