/* ============================================================ employer.jsx — работодатель: карточка в вакансии и полноэкранный экран отзывов. Вместо стоимости оформления человек видит, кто его нанимает и что говорят те, кто уже там работает. ============================================================ */ /* ---------- звёзды ---------- */ function Stars({ value, size = 13, gap = 1.5 }) { return ( {[0, 1, 2, 3, 4].map(i => ( ))} ); } /* ---------- логотип компании ---------- */ function EmployerLogo({ emp, size = 46, radius = 13 }) { return ( ); } /* ---------- один отзыв ---------- */ function ReviewCard({ q, lang, delay = 0 }) { return (
{tr(q.who, lang)}
{tr(q.ago, lang)}
{tr(q.text, lang)}
); } /* ---------- карточка работодателя внутри вакансии ---------- Компактная: кто нанимает и какой у него рейтинг. Всё остальное (плюсы, отзывы, распределение) — на экране отзывов. */ function EmployerCard({ emp, lang, t, onOpen }) { return ( ); } /* ---------- полноэкранные отзывы ---------- */ function EmployerSheet({ emp, job, lang, t, onClose }) { const total = emp.reviews; return (
{/* шапка */}
{tr(emp.name, lang)}
{tr(COUNTRIES[job.country].name, lang)} · {tr(job.title, lang)}
{/* сводка: оценка и распределение */}
{emp.rating.toFixed(1)}
{total} {t.empOfWhich}
{[5, 4, 3, 2, 1].map((star, i) => (
{star} {Math.round(emp.dist[i] * total)}
))}
{/* факты о работодателе */}
{[ { v: emp.hired, l: t.empHiredShort, icon: 'plane' }, { v: emp.since, l: t.empSinceShort, icon: 'calendar' }, ].map((x, i) => (
{x.v}
{x.l}
))}
{/* за что хвалят */}
{emp.pluses.map((p, i) => ( {tr(p, lang)} ))}
{/* отзывы */}
{t.empAll}
{emp.quotes.map((q, i) => )}
{t.empReviewNote}
); } Object.assign(window, { Stars, EmployerLogo, EmployerCard, EmployerSheet, ReviewCard });