"use client"; import { Block } from "@/components/Block"; import { Carousel } from "@/components/Carousel/Carousel"; import { Loader } from "@/components/Loader"; import { Page } from "@/components/Page"; import { cn } from "@/utils/cn"; import { useRawInitData } from "@telegram-apps/sdk-react"; import { ChevronLeft, ChevronRight, ClipboardList } from "lucide-react"; import { QRCodeSVG } from "qrcode.react"; import { useEffect, useState } from "react"; import { getUrl } from "./actions"; interface ProxySubData { url: string; expiryTime: number; } type ProxySubArray = ProxySubData[]; export default function Home() { const [proxyData, setProxyData] = useState([]); const [chosen, setChosen] = useState(0); const [isLoading, setIsLoading] = useState(true); const [notFound, setNotFound] = useState(false); const initData = useRawInitData(); const onCopyClick = async (url: string) => { if (!proxyData.length) return; await navigator.clipboard.writeText(url); setIsCopied(true); setTimeout(() => { setIsCopied(false); }, 2000); }; const [isCopied, setIsCopied] = useState(false); useEffect(() => { const fetchData = async () => { try { const data = await getUrl(initData); setProxyData(data); setIsLoading(false); } catch (e) { console.error(e); setNotFound(true); setIsLoading(false); } }; fetchData(); }, [initData]); if (isLoading) return ; if (notFound) { return (
Ссылка не найдена
); } return (
Nwaifu Proxy
{proxyData.length && ( <>
setChosen(chosen - 1 < 0 ? proxyData.length - 1 : chosen - 1)} /> {proxyData.map((item, index) => (
onCopyClick(item.url)} key={index} >
Скопировано
))}
setChosen(chosen + 1 > proxyData.length - 1 ? 0 : chosen + 1)} />
Нажмите на QR, чтобы скопировать!
Статус: {proxyData[chosen].expiryTime > Date.now() || proxyData[chosen].expiryTime === 0 ? "Активна" : "Не Активна"}
Активна до: {proxyData[chosen].expiryTime === 0 ? "Всегда" : proxyData[chosen].expiryTime > Date.now() ? new Date(proxyData[chosen].expiryTime).toLocaleString("ru-RU") : "Не Активна"}
)}
); }