/* global React, Container, Section, SectionIdx, Button, useLang, t, I18nStore */ // ╔══ ОТПРАВКА ЗАЯВОК ═══════════════════════════════════════════╗ // Токен бота больше НЕ хранится здесь. Форма шлёт заявку на ваш прокси // (Cloudflare Worker), а уже он — секретно — пересылает её в Telegram. // // Вставьте сюда адрес воркера после деплоя (см. telegram-proxy/worker.js): // например 'https://ea-soft-leads.ВАШ-САБДОМЕН.workers.dev' // Пока пусто — форма работает в демо-режиме (показывает «спасибо», но не шлёт). // ╚══════════════════════════════════════════════════════════════╝ const PROXY_URL = 'https://aged-cell-e04f.azat-massaurov.workers.dev/'; async function sendToTelegram(form) { const payload = { ...form, lang: I18nStore.lang }; if (!PROXY_URL) { console.warn('[Telegram] PROXY_URL не задан — демо-режим, заявка не отправлена:\n', payload); await new Promise(r => setTimeout(r, 600)); return; } const res = await fetch(PROXY_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); const data = await res.json().catch(() => ({})); if (!res.ok || !data.ok) throw new Error(data.error || ('HTTP ' + res.status)); } function Contact() { useLang(); const [status, setStatus] = React.useState('idle'); // idle | sending | sent | error const [form, setForm] = React.useState({ name: '', phone: '', service: '', task: '' }); const update = (k) => (e) => setForm({ ...form, [k]: e.target.value }); const valid = form.name.trim().length > 0 && form.phone.trim().length > 0 && form.service.length > 0; const services = t('contact.services'); const sent = status === 'sent'; const sending = status === 'sending'; const onSubmit = async (e) => { e.preventDefault(); if (!valid || sending) return; setStatus('sending'); try { await sendToTelegram(form); setStatus('sent'); } catch (err) { console.error('[Telegram] Ошибка отправки:', err); setStatus('error'); } }; return (

{t('contact.title')}

{t('contact.lead')}

{t('contact.badges').map((b, i) => {b})}
{sent ? (
{t('contact.sentTag')}

{t('contact.sentTitle')}

{t('contact.sentText')}

) : status === 'error' ? (
{t('contact.errTag')}

{t('contact.errTitle')}

{t('contact.errText')}

) : (