import { useEffect, useMemo } from 'react'; import { Link } from 'react-router'; import { PencilIcon } from '@heroicons/react/24/outline'; import { useAuthStore } from '../stores/authStore'; import { usePermissions } from '../hooks/usePermissions'; import SettingsLayout from '../components/layout/SettingsLayout'; import BackButton from '../components/ui/BackButton'; import ClinicDoctorsManager from '../components/ClinicDoctorsManager'; /** * ClinicDoctorsPage — the clinic-owner settings tab for managing the clinic's * doctors (list, invite, detach) and pending invitations. Renders inside the * settings shell instead of jumping to the standalone admin ClinicDetailPage. * Clinic-info editing (name, gallery, addresses, specialties) stays on the full * detail page, reachable via the "ویرایش اطلاعات کلینیک" link. */ function ClinicDoctorsContent() { const { dbUuid, context, availableContexts, fetchMe } = useAuthStore(); // مجوزهای منشی؛ برای owner/کلینیک همیشه true (usePermissions بدون context آزاد است). const { can } = usePermissions(); const canCreate = can('clinic_doctors', 'create'); const canUpdate = can('clinic_doctors', 'update'); const canDelete = can('clinic_doctors', 'delete'); useEffect(() => { if (!dbUuid) fetchMe(); }, [dbUuid, fetchMe]); // یک کاربر می‌تواند همزمان context پزشک و کلینیک داشته باشد؛ dbUuid فقط context فعال است. // این صفحه همیشه باید uuid کلینیک را بفرستد، وگرنه همه اندپوینت‌های کلینیک ۴۰۴ می‌دهند. const clinicUuid = useMemo(() => { if (context?.type === 'clinic') return dbUuid; return availableContexts.find(c => c.type === 'clinic')?.db_uuid ?? null; }, [context, dbUuid, availableContexts]); if (!clinicUuid) { return (

{dbUuid ? 'کلینیکی برای این حساب کاربری یافت نشد' : 'در حال بارگذاری اطلاعات کلینیک...'}

); } return (

پزشکان کلینیک

مدیریت پزشکان و دعوت‌نامه‌های کلینیک
ویرایش اطلاعات کلینیک
); } export default function ClinicDoctorsPage() { return ( ); }