// confirmation.jsx — Page 4: Booking Confirmation
function ConfirmationPage({ navigate, formData, booking, tweaks, devMode }) {
const dt = booking.time ? new Date(booking.time) : (booking.startTime ? new Date(booking.startTime) : null);
const dateStr = dt
? dt.toLocaleDateString("ru-RU", { day: "numeric", month: "long", year: "numeric", weekday: "long" })
: "—";
const timeStr = dt
? dt.toLocaleTimeString("ru-RU", { hour: "2-digit", minute: "2-digit" })
: (booking.time || "—");
const [confirmContent, setConfirmContent] = React.useState(null);
React.useEffect(() => {
fetch("/api/confirmation-page")
.then(r => r.ok ? r.json() : null)
.then(d => { if (d) setConfirmContent(d); })
.catch(() => {});
}, []);
const cc = confirmContent || {};
return (
{cc.heading || "Консультация забронирована!"}
{(() => {
const tpl = cc.subheading || "Мы отправили детали встречи на {email}. До встречи!";
const parts = tpl.split("{email}");
if (parts.length === 1) return tpl;
return <>{parts[0]}{formData.email || "вашу почту"}{parts[1]}>;
})()}
{/* Details + prep */}
Детали консультации
Подтверждение встречи
} label="Дата" value={{dateStr}}/>
} label="Время" value={timeStr}/>
} label="Формат" value="Онлайн"/>
} label="Консультант" value={cc.consultant_name || "Денис Власин"}/>
Ссылка на встречу
Calendly пришлёт ссылку на ваш email
Что подготовить
{cc.prep_heading || "Перед консультацией"}
{(cc.prep_bullets || [
"Ваше резюме / CV — мы уже получили",
"Документы об образовании (если есть)",
"Список ваших вопросов",
"Блокнот и ручка, чтобы делать заметки",
"Стабильное интернет-соединение",
]).map((b, i) => (
- {b}
))}
Если у вас изменятся планы
{cc.cancellation_policy || "Пожалуйста, сообщите нам не позднее, чем за 24 часа — мы перенесём консультацию бесплатно."}
Есть вопросы? Напишите нам в
Telegram — мы всегда на связи.
{devMode && (
)}
);
}
function DetailRow({ icon, label, value }) {
return (
);
}
window.ConfirmationPage = ConfirmationPage;