// Doctor detail page const { useState: p2S, useMemo: p2M } = React; const DoctorDetailPage = ({ doctorId, onBook }) => { const doctor = p2M(() => DATA.doctors.find(d => d.id === doctorId), [doctorId]) || DATA.doctors[0]; const [tab, setTab] = p2S('about'); // Related doctors (same direction, different person) const related = p2M(() => { if (!doctor.directions) return []; return DATA.doctors .filter(d => d.id !== doctor.id && d.directions && d.directions.some(dir => doctor.directions.includes(dir))) .slice(0, 4); }, [doctor]); // Linked direction names const linkedDirs = (doctor.directions || []).map(id => DATA.directions.find(d => d.id === id)).filter(Boolean); return ( <>
{doctor.photo ? {doctor.fullName} : } {doctor.degree && {doctor.degree}}
{doctor.specs[0]}

{doctor.fullName}

{doctor.specs.join(' · ')}
Стаж
{doctor.experience}
Приём
{doctor.price}
{doctor.degree && (
Степень
{doctor.degree}
)}
Место приёма
{DATA.brand.address.split(',')[0]}
{linkedDirs.length > 0 && (
{linkedDirs.map(d => ( {d.name} ))}
)}
WhatsApp
{/* TABS */}
{[ ['about', 'О враче'], ['education', 'Образование'], ['treats', 'Что лечит'], ['schedule', 'Расписание'], ].map(([id, label]) => ( ))}
{tab === 'about' && (

{doctor.bio}

{doctor.awards && doctor.awards.length > 0 && ( <>

Регалии и членство

    {doctor.awards.map((a, i) =>
  • {a}
  • )}
)}
)} {tab === 'education' && (

Образование и стажировки

    {doctor.education && doctor.education.map((e, i) => (
  • {e}
  • ))}
)} {tab === 'treats' && (

Заболевания и состояния

{doctor.treats && doctor.treats.map((t, i) => (
{t}
))}
)} {tab === 'schedule' && (

График приёма на этой неделе

{doctor.schedule && Object.entries(doctor.schedule).map(([day, time]) => (
{day} {time}
))}

Время приёма может отличаться. Уточняйте у администратора при записи.

)}
{/* RELATED DOCTORS */} {related.length > 0 && (
{related.map(d => )}
)} ); }; Object.assign(window, { DoctorDetailPage });