diff --git a/frontend/admin-panel/src/pages/B2BManager.tsx b/frontend/admin-panel/src/pages/B2BManager.tsx
index af59315..3764bfd 100644
--- a/frontend/admin-panel/src/pages/B2BManager.tsx
+++ b/frontend/admin-panel/src/pages/B2BManager.tsx
@@ -3,8 +3,13 @@ import { Building2, CheckCircle2, XCircle, Clock, PhoneCall, Filter, X, Plus, Sh
import { toast } from 'react-hot-toast';
import api from '../services/api';
import Spinner from '../components/ui/Spinner';
+import Button from '../components/ui/Button';
+import Modal from '../components/ui/Modal';
import type { B2BInquiry, PartnerAccount } from '../types/admin';
+
+
+
export default function B2BManager() {
const [activeTab, setActiveTab] = useState<'inquiries' | 'partners'>('inquiries');
@@ -277,12 +282,13 @@ export default function B2BManager() {
)}
-
+
|
))
@@ -296,13 +302,14 @@ export default function B2BManager() {
فهرست حسابهای تایید شده همکار
-
+
@@ -360,21 +367,41 @@ export default function B2BManager() {
{/* Inquiry Review Modal */}
{selectedInquiry && (
-
-
-
-
- بررسی درخواست B2B ({selectedInquiry.companyName})
-
-
+
setSelectedInquiry(null)}
+ title={`بررسی درخواست B2B (${selectedInquiry.companyName})`}
+ icon={Building2}
+ maxWidth="lg"
+ footer={
+
+
+
-
-
+
)}
{/* Partner Account Setup Modal */}
{isPartnerModalOpen && (
-
-
-
-
- تعریف حساب همکار B2B جدید
-
-
+
setIsPartnerModalOpen(false)}
+ title="تعریف حساب همکار B2B جدید"
+ icon={Building2}
+ maxWidth="lg"
+ footer={
+
+
+
-
-
+
)}
);
}
+
diff --git a/frontend/admin-panel/src/pages/ContactSubmissions.tsx b/frontend/admin-panel/src/pages/ContactSubmissions.tsx
index 7dc17ac..7c2b02b 100644
--- a/frontend/admin-panel/src/pages/ContactSubmissions.tsx
+++ b/frontend/admin-panel/src/pages/ContactSubmissions.tsx
@@ -1,6 +1,10 @@
import React, { useEffect, useState } from 'react';
+import { Mail, MessageSquare } from 'lucide-react';
import toast from 'react-hot-toast';
import api from '../services/api';
+import Button from '../components/ui/Button';
+import Modal from '../components/ui/Modal';
+
interface ContactSubmission {
id: string;
@@ -153,16 +157,17 @@ export default function ContactSubmissions() {
-
+
|
))}
@@ -220,21 +225,45 @@ export default function ContactSubmissions() {
))}
-
+
)}
{/* Modal for Submission Detail & Status Update */}
{selectedSub && (
-
-
-
جزئیات پیام {selectedSub.name}
+
setSelectedSub(null)}
+ title={`جزئیات پیام ${selectedSub.name}`}
+ icon={Mail}
+ maxWidth="lg"
+ footer={
+
+
+
+
+ }
+ >
+
تلفن: {selectedSub.phone}
{selectedSub.email &&
ایمیل: {selectedSub.email}
}
@@ -268,24 +297,11 @@ export default function ContactSubmissions() {
className="w-full px-3 py-2 border rounded-lg text-sm"
/>
-
-
-
-
-
+
)}
+
);
}
diff --git a/frontend/admin-panel/src/pages/DoctorsManager.tsx b/frontend/admin-panel/src/pages/DoctorsManager.tsx
index 9880030..dac242d 100644
--- a/frontend/admin-panel/src/pages/DoctorsManager.tsx
+++ b/frontend/admin-panel/src/pages/DoctorsManager.tsx
@@ -5,6 +5,9 @@ import api, { BASE_DOMAIN } from '../services/api';
import ConfirmModal from '../components/ui/ConfirmModal';
import MediaSelector from '../components/ui/MediaSelector';
import Spinner from '../components/ui/Spinner';
+import Button from '../components/ui/Button';
+import Modal from '../components/ui/Modal';
+
export interface Doctor {
id: string;
@@ -165,13 +168,14 @@ export default function DoctorsManager() {
ثبت اطلاعات و رزومه (CV) دامپزشکان جهت انتساب به ویدئوها، مشاورهها و معرفی کادر تخصصی
-
+ افزودن پزشک جدید
+
{/* Filter / Search */}
@@ -203,13 +207,14 @@ export default function DoctorsManager() {
پزشکی یافت نشد
اولین پزشک یا متخصص کادر علمی را به سامانه اضافه کنید.
-
+
) : (
@@ -228,23 +233,23 @@ export default function DoctorsManager() {
- {/* Profile Header */}
+ {/* Avatar & Main Info */}
-
+
{doc.avatarUrl ? (
)
) : (
-
+
)}
-
{doc.name}
-
{doc.title || 'دامپزشک'}
+
{doc.name}
+
{doc.title || 'پزشک متخصص'}
{doc.clinicName && (
-
{doc.clinicName}
+
+
+ {doc.clinicName}
+
)}
- {/* Bio snippet */}
+ {/* Bio Summary */}
{doc.bio && (
-
+
{doc.bio}
)}
- {/* CV Button */}
- {doc.cv && (
-
- )}
-
-
- {/* Footer info */}
-
-
{doc._count?.videos || 0} ویدئوی آموزشی
- {doc.phone &&
{doc.phone}}
+ {/* Contact & CV Trigger */}
+
+ {doc.phone && (
+
+
+ {doc.phone}
+
+ )}
+ {doc.instagram && (
+
+
+ {doc.instagram}
+
+ )}
+ {doc.cv && (
+
+ )}
+
))}
)}
- {/* Create / Edit Modal */}
+ {/* Modal Add/Edit */}
{isModalOpen && (
-
-
- {/* Modal Header */}
-
-
-
-
-
-
-
- {editingDoctor ? 'ویرایش اطلاعات پزشک' : 'افزودن پزشک جدید'}
-
-
مشخصات هویتی، آواتار و رزومه علمی پزشک
-
-
-