"use client"; import { useState, useEffect } from "react"; const translations = { uz: { badge: "To'lov amalga oshmadi", title: "To'lov\nQabul\nQilinmagani uchun Sayt O'chirildi", subtitle: "Afsuski, to'lovingizni qayta ishlashda xatolik yuz berdi.", reasons_title: "Mumkin bo'lgan sabablar:", reasons: [ "Karta mablag'i yetarli emas", "Bank tomonidan to'lov rad etildi", "Karta ma'lumotlari noto'g'ri", "Tarmoq ulanish muammosi", ], retry: "Qayta urinish", support: "Qo'llab-quvvatlash", back: "Orqaga qaytish", code: "Xato kodi", time: "Vaqt", }, ru: { badge: "Платёж не выполнен", title: "Из-за\nнеполучения\nплатежа сайт отключен", subtitle: "К сожалению, при обработке вашего платежа произошла ошибка.", reasons_title: "Возможные причины:", reasons: [ "Недостаточно средств на карте", "Платёж отклонён банком", "Неверные данные карты", "Проблема с сетевым подключением", ], retry: "Повторить", support: "Поддержка", back: "Назад", code: "Код ошибки", time: "Время", }, en: { badge: "Payment Failed", title: "The site\nwas disabled\ndue to non-payment", subtitle: "Unfortunately, an error occurred while processing your payment.", reasons_title: "Possible reasons:", reasons: [ "Insufficient funds on card", "Payment declined by bank", "Incorrect card details", "Network connection issue", ], retry: "Try Again", support: "Support", back: "Go Back", code: "Error Code", time: "Time", }, }; const ERROR_CODE = "ERR-4082"; export default function PaymentFailed() { const [lang, setLang] = useState("en"); const [visible, setVisible] = useState(false); const [shake, setShake] = useState(false); const [time] = useState(() => new Date().toLocaleTimeString("en-GB", { hour: "2-digit", minute: "2-digit", second: "2-digit", }) ); const t = translations[lang as "uz" | "ru" | "en"]; useEffect(() => { const timer = setTimeout(() => setVisible(true), 100); return () => clearTimeout(timer); }, []); const handleRetry = () => { setShake(true); setTimeout(() => setShake(false), 600); }; return ( <>
{/* LEFT */}
{["uz", "ru", "en"].map((l) => ( ))}

{t.title.split("\n").map((line:any, i:number) => i === 1 ? ( {line} ) : ( {line} ) )}

{t.code} {ERROR_CODE}
{t.time} {time}
{/* RIGHT */}
{t.badge}

{t.subtitle}

{t.reasons_title}

{t.reasons.map((reason, i) => (
{reason}
))}
); }