import React, { useState, useEffect } from "react";
// Установите здесь дату и время старта продажи в формате ISO (в часовом поясе владельца).
// Пример: '2025-11-25T09:00:00-05:00' (America/New_York)
const SALE_START_ISO = '2025-11-25T00:00:00-05:00';
export default function MarathonLanding() {
const [now, setNow] = useState(new Date());
useEffect(() => {
const t = setInterval(() => setNow(new Date()), 1000);
return () => clearInterval(t);
}, []);
const saleStart = new Date(SALE_START_ISO);
const diffMs = now - saleStart;
// Ценообразование по логике, предоставленной пользователем:
// 0–48 часов: 990₽
// 48 часов–5 дней: 1490₽
// дальше: 1990₽
const hoursFromStart = diffMs / (1000 * 60 * 60);
let currentPrice = 1990;
let priceLabel = '1990₽ — стандартная цена';
if (hoursFromStart >= 0 && hoursFromStart <= 48) {
currentPrice = 990;
priceLabel = '990₽ — первые 48 часов';
} else if (hoursFromStart > 48 && hoursFromStart <= 24 * 5) {
currentPrice = 1490;
priceLabel = '1490₽ — в течение 5 дней после акции';
}
function formatTimeLeft(ms) {
if (ms <= 0) return '0d 0h 0m 0s';
const s = Math.floor(ms / 1000);
const days = Math.floor(s / 86400);
const hours = Math.floor((s % 86400) / 3600);
const minutes = Math.floor((s % 3600) / 60);
const seconds = s % 60;
return `${days}d ${hours}h ${minutes}m ${seconds}s`;
}
// Таймер до конца текущего прайс-диапазона
let rangeEnd = saleStart.getTime() + 48 * 3600 * 1000; // по умолчанию конец 48 часов
if (hoursFromStart > 48 && hoursFromStart <= 24 * 5) {
rangeEnd = saleStart.getTime() + 24 * 3600 * 1000 * 5; // 5 дней
} else if (hoursFromStart < 0) {
rangeEnd = saleStart.getTime(); // продажа ещё не стартовала
}
const timeLeftMs = rangeEnd - now.getTime();
// Простейшая валидация формы — на стороне клиента только демонстрация
const [form, setForm] = useState({ name: '', email: '' });
const [sent, setSent] = useState(false);
function submit(e) {
e.preventDefault();
// Здесь нужно подключить платеж/CRM. Сейчас — мок.
setSent(true);
setTimeout(() => alert(`Спасибо, ${form.name}! Вы выбрали тариф ${currentPrice}₽ (демо).`), 100);
}
return (
{/* HERO */}
Марафон Стройности 2.0
Комплексная обновлённая программа: питание, тренировки, медитации, поддержка эксперта — и доступ навсегда.
- ✔️ Готовое питание + список продуктов
- ✔️ Тренировки с тренером (видео)
- ✔️ Медитации и мотивация
- ✔️ Вебинары с экспертом + запись
- ✔️ Обратная связь, Доступ навсегда
Таймер: {hoursFromStart < 0 ? 'Продажа начнётся: ' + new Date(saleStart).toLocaleString() : formatTimeLeft(timeLeftMs)}
{/* Placeholder для видео/иллюстрации */}
Видео-презентация
Короткое заставочное видео эксперта (вставьте своё).
Навсегда
доступ к материалам
{/* PROGRAM */}
Что входит в программу
Кому подходит марафон
- — Тем, кто хочет похудеть спокойно и без жёстких диет
- — Тем, кто хочет привычки, а не временный результат
- — Тем, кто ценит поддержку тренера и эксперта
Гарантии и обещания
Мы даём рабочую систему, проверенную на практике. Возврат обсуждается в первые 7 дней — подробно в договоре.
{/* PRICING */}
Цена и тарифы
Выберите подходящий момент — цена меняется автоматически.
Текущая цена
{currentPrice}₽
{priceLabel}
{/* TESTIMONIALS */}
{/* FAQ + Signup */}
Частые вопросы
Сколько длится марафон?
Основной курс рассчитан на 4 недели. Доступ к материалам сохраняется навсегда.
Подойдёт ли мне программа, если я новичок?
Да. Все тренировки содержат модификации для новичков и для продвинутых.
Можно ли вернуть деньги?
Политика возврата обсуждается индивидуально (рекомендуем указать 7-дневный пробный период в договоре).
Запись на марафон
{sent ? (
Заявка принята. Проверьте почту для инструкции по оплате (демо).
) : (
)}
{/* FOOTER */}
);
}
function FeatureCard({ title, desc }) {
return (
);
}
function PriceCard({ title, price, sub, active }) {
return (
);
}
function Testimonial({ name, text }) {
return (
);
}