diff --git a/assets/admin/App.tsx b/assets/admin/App.tsx index 60bbb6c6..20566886 100644 --- a/assets/admin/App.tsx +++ b/assets/admin/App.tsx @@ -165,7 +165,7 @@ export default function App() { } /> {/* ادمین + کلینیک */} - } /> + } /> {/* فقط ادمین — کلینیک از طریق دعوتنامه در صفحه کلینیک خود دکتر اضافه می‌کند */} } /> diff --git a/assets/admin/pages/ClinicDetailPage.tsx b/assets/admin/pages/ClinicDetailPage.tsx index 34976160..4e5be7e4 100644 --- a/assets/admin/pages/ClinicDetailPage.tsx +++ b/assets/admin/pages/ClinicDetailPage.tsx @@ -480,6 +480,8 @@ export default function ClinicDetailPage() { const dbUuid = useAuthStore(s => s.dbUuid); const authToken = useAuthStore(s => s.token); const isOwner = primaryRole === 'clinic' && dbUuid === uuid; + // نماینده فقط مشاهده می‌کند؛ هیچ بخشی قابل ویرایش نیست. + const isReadOnly = primaryRole === 'representation'; const [editOpen, setEditOpen] = useState(false); const [deleteOpen, setDeleteOpen] = useState(false); @@ -759,9 +761,11 @@ export default function ClinicDetailPage() {
- + {!isReadOnly && ( + + )} {primaryRole === 'admin' && ( <> - e.target.files?.[0] && handleLogoUpload(e.target.files[0])} /> + {!isReadOnly && ( + <> + + e.target.files?.[0] && handleLogoUpload(e.target.files[0])} /> + + )}
{clinic.name}
@@ -847,9 +855,11 @@ export default function ClinicDetailPage() { دعوتنامه‌ها ({formatNumber(invitationList.length)})
- + {!isReadOnly && ( + + )} {/* Doctors tab */} @@ -937,36 +947,38 @@ export default function ClinicDetailPage() { {isExpired ? 'منقضی' : statusInfo.label} -
- {inv.status === 'pending' && ( + {!isReadOnly && ( +
+ {inv.status === 'pending' && ( + + )} + {inv.status !== 'removed' && inv.status !== 'accepted' && ( + + )} - )} - {inv.status !== 'removed' && inv.status !== 'accepted' && ( - - )} - -
+
+ )} ); @@ -982,13 +994,17 @@ export default function ClinicDetailPage() { گالری تصاویر ({formatNumber((clinic.images_clinic ?? []).filter(i => i?.url).length)}/{formatNumber(MAX_GALLERY_IMAGES)}) - - e.target.files?.length && handleGalleryUpload(e.target.files)} /> + {!isReadOnly && ( + <> + + e.target.files?.length && handleGalleryUpload(e.target.files)} /> + + )} {(clinic.images_clinic ?? []).length === 0 ? (
@@ -999,15 +1015,17 @@ export default function ClinicDetailPage() { {clinic.images_clinic.filter(img => img?.url).map((img, i) => (
- + {!isReadOnly && ( + + )}
))}
@@ -1036,9 +1054,11 @@ export default function ClinicDetailPage() {
تخصص‌ها، بیمه و خدمات - + {!isReadOnly && ( + + )}
@@ -1091,7 +1111,7 @@ export default function ClinicDetailPage() { )} {/* Clinic Addresses Section */} - {(isOwner || primaryRole === 'admin') && ( + {(isOwner || primaryRole === 'admin' || isReadOnly) && (