2026-02-04 05:19:09 +03:00
'use client' ;
import { useState } from 'react' ;
import { useRouter } from 'next/navigation' ;
import {
ChevronLeft , ChevronDown , ChevronUp ,
Rocket , HelpCircle , Wrench , MessageCircle , FileText ,
Smartphone , Download , Play , Apple , Monitor , Wifi , Globe , Shield , Zap
} from 'lucide-react' ;
export default function HelpPage() {
const router = useRouter ( ) ;
const [ openFaq , setOpenFaq ] = useState < number | null > ( null ) ;
const [ openTrouble , setOpenTrouble ] = useState < number | null > ( null ) ;
const toggleFaq = ( index : number ) = > {
setOpenFaq ( openFaq === index ? null : index ) ;
} ;
const toggleTrouble = ( index : number ) = > {
setOpenTrouble ( openTrouble === index ? null : index ) ;
} ;
const faqs = [
{
question : 'Как подключиться к VPN?' ,
answer : 'Откройте приложение Umbrix → выберите сервер → нажмите кнопку "Подключить". Приложение автоматически установит безопасное соединение.'
} ,
{
question : 'Как изменить страну/сервер?' ,
answer : 'В главном экране нажмите на текущий сервер → выберите нужную страну из списка → нажмите "Подключить". Приложение переключится на новый сервер.'
} ,
{
question : 'Как проверить что VPN работает?' ,
answer : 'Проверьте иконку в статус-б а р е (должна быть зеленой). Или зайдите на сайт 2ip.ru - вы увидите IP-адрес выбранной страны, а не свой реальный.'
} ,
{
question : 'Как продлить подписку?' ,
answer : 'Главное меню → Тарифы → выберите нужный план → оплатите. Подписка продлится автоматически после подтверждения оплаты.'
} ,
{
question : 'Можно ли использовать на нескольких устройствах?' ,
answer : 'Да! Одна подписка работает на неограниченном количестве устройств. Просто установите Umbrix на каждое устройство и войдите с той же подпиской.'
} ,
{
question : 'Как получить бесплатный пробный период?' ,
answer : '7 дней бесплатно при регистрации! Или получите +7 дней за каждого приглашенного друга через реферальную программу.'
} ,
] ;
const troubleshooting = [
{
problem : 'VPN не подключается' ,
solution : '1) Проверьте интернет-соединение\n2) Попробуйте другой сервер\n3) Переустановите приложение\n4) Напишите в поддержку с описанием проблемы'
} ,
{
problem : 'Низкая скорость соединения' ,
solution : '1) Выберите ближайший к вам сервер\n2) Смените протокол на WireGuard (быстрее OpenVPN)\n3) Проверьте скорость без VPN для сравнения\n4) Попробуйте подключиться в другое время суток'
} ,
{
problem : 'Приложение вылетает/зависает' ,
solution : '1) Обновите приложение до последней версии\n2) Очистите кеш приложения\n3) Перезагрузите устройство\n4) Переустановите приложение заново'
} ,
{
problem : 'Ошибка "Н е удалось установить соединение"' ,
solution : '1) Проверьте срок действия подписки\n2) Убедитесь что не превышен лимит трафика\n3) Попробуйте переключиться на другой протокол\n4) Проверьте не блокирует ли ваш провайдер VPN'
} ,
{
problem : 'Н е приходит код подтверждения' ,
solution : '1) Проверьте папку "Спам" в почте\n2) Убедитесь что email указан верно\n3) Подождите 5-10 минут\n4) Запросите код повторно\n5) Напишите в поддержку Telegram'
} ,
] ;
return (
< div className = "min-h-screen bg-[var(--bg-app)] text-white" >
{ /* Header */ }
< div className = "bg-[var(--bg-card)] border-b border-slate-700 sticky top-0 z-10 backdrop-blur-sm" >
< div className = "max-w-2xl mx-auto p-4 flex items-center gap-3" >
< button
onClick = { ( ) = > router . back ( ) }
className = "p-2 hover:bg-slate-700 rounded-lg transition-colors"
>
< ChevronLeft className = "w-6 h-6" / >
< / button >
< h1 className = "text-xl font-bold" > П о м о щ ь < / h1 >
< / div >
< / div >
{ /* Content */ }
< div className = "max-w-2xl mx-auto p-4 space-y-6" >
{ /* 1. Начало работы */ }
< section className = "bg-[var(--bg-card)] border border-slate-700 rounded-xl p-6" >
< div className = "flex items-center gap-3 mb-4" >
< Rocket className = "w-6 h-6" style = { { color : 'var(--primary)' } } / >
< h2 className = "text-xl font-bold" > Н а ч а л о р а б о т ы < / h2 >
< / div >
< div className = "space-y-4" >
{ /* Шаг 1: Установка */ }
< div >
< h3 className = "font-semibold mb-2 flex items-center gap-2" >
< Download className = "w-5 h-5" style = { { color : 'var(--primary)' } } / >
1 . У с т а н о в и т е п р и л о ж е н и е
< / h3 >
< div className = "pl-7 space-y-2 text-sm text-slate-400" >
< div className = "flex items-center gap-2" >
< Smartphone className = "w-4 h-4" / >
2026-02-06 02:39:28 +03:00
< span > < strong > Android : < / strong > Google Play Store → & quot ; Umbrix VPN & quot ; < / span >
2026-02-04 05:19:09 +03:00
< / div >
< div className = "flex items-center gap-2" >
< Apple className = "w-4 h-4" / >
2026-02-06 02:39:28 +03:00
< span > < strong > iOS : < / strong > App Store → & quot ; Umbrix VPN & quot ; < / span >
2026-02-04 05:19:09 +03:00
< / div >
< div className = "flex items-center gap-2" >
< Monitor className = "w-4 h-4" / >
< span > < strong > Desktop : < / strong > umbrix . net / download < / span >
< / div >
< / div >
< / div >
{ /* Шаг 2: Активация */ }
< div >
< h3 className = "font-semibold mb-2 flex items-center gap-2" >
< Play className = "w-5 h-5" style = { { color : 'var(--primary)' } } / >
2 . А к т и в и р у й т е п о д п и с к у
< / h3 >
< p className = "pl-7 text-sm text-slate-400" >
С к о п и р у й т е с с ы л к у п о д п и с к и и з б о т а → в с т а в ь т е в п р и л о ж е н и е Umbrix → г о т о в о !
< / p >
< / div >
{ /* Шаг 3: Подключение */ }
< div >
< h3 className = "font-semibold mb-2 flex items-center gap-2" >
< Wifi className = "w-5 h-5" style = { { color : 'var(--primary)' } } / >
3 . П о д к л ю ч и т е с ь к VPN
< / h3 >
< p className = "pl-7 text-sm text-slate-400" >
2026-02-06 02:39:28 +03:00
П е р е й д и т е в о в к л а д к у & quot ; Л о к а ц и и & quot ; → в ы б е р и т е с е р в е р ( с т р а н у ) → н а ж м и т е б о л ь ш у ю з е л е н у ю к н о п к у → VPN а к т и в и р о в а н !
2026-02-04 05:19:09 +03:00
< / p >
< / div >
< / div >
< / section >
{ /* 2. FAQ */ }
< section className = "bg-[var(--bg-card)] border border-slate-700 rounded-xl p-6" >
< div className = "flex items-center gap-3 mb-4" >
< HelpCircle className = "w-6 h-6" style = { { color : 'var(--primary)' } } / >
< h2 className = "text-xl font-bold" > Ч а с т ы е в о п р о с ы < / h2 >
< / div >
< div className = "space-y-3" >
{ faqs . map ( ( faq , index ) = > (
< div
key = { index }
className = "border border-slate-700 rounded-lg overflow-hidden"
>
< button
onClick = { ( ) = > toggleFaq ( index ) }
className = "w-full flex items-center justify-between p-4 hover:bg-slate-700/50 transition-colors text-left"
>
< span className = "font-medium" > { faq . question } < / span >
{ openFaq === index ? (
< ChevronUp className = "w-5 h-5 flex-shrink-0" style = { { color : 'var(--primary)' } } / >
) : (
< ChevronDown className = "w-5 h-5 flex-shrink-0" style = { { color : 'var(--primary)' } } / >
) }
< / button >
{ openFaq === index && (
< div className = "px-4 pb-4 text-sm text-slate-400 border-t border-slate-700 pt-4" >
{ faq . answer }
< / div >
) }
< / div >
) ) }
< / div >
< / section >
{ /* 3. Решение проблем */ }
< section className = "bg-[var(--bg-card)] border border-slate-700 rounded-xl p-6" >
< div className = "flex items-center gap-3 mb-4" >
< Wrench className = "w-6 h-6" style = { { color : 'var(--primary)' } } / >
< h2 className = "text-xl font-bold" > Р е ш е н и е п р о б л е м < / h2 >
< / div >
< div className = "space-y-3" >
{ troubleshooting . map ( ( item , index ) = > (
< div
key = { index }
className = "border border-slate-700 rounded-lg overflow-hidden"
>
< button
onClick = { ( ) = > toggleTrouble ( index ) }
className = "w-full flex items-center justify-between p-4 hover:bg-slate-700/50 transition-colors text-left"
>
< span className = "font-medium" > { item . problem } < / span >
{ openTrouble === index ? (
< ChevronUp className = "w-5 h-5 flex-shrink-0" style = { { color : 'var(--primary)' } } / >
) : (
< ChevronDown className = "w-5 h-5 flex-shrink-0" style = { { color : 'var(--primary)' } } / >
) }
< / button >
{ openTrouble === index && (
< div className = "px-4 pb-4 text-sm text-slate-400 border-t border-slate-700 pt-4 whitespace-pre-line" >
{ item . solution }
< / div >
) }
< / div >
) ) }
< / div >
< / section >
{ /* 4. Связаться с поддержкой */ }
< section className = "bg-[var(--bg-card)] border border-slate-700 rounded-xl p-6" >
< div className = "flex items-center gap-3 mb-4" >
< MessageCircle className = "w-6 h-6" style = { { color : 'var(--primary)' } } / >
< h2 className = "text-xl font-bold" > С в я з а т ь с я с п о д д е р ж к о й < / h2 >
< / div >
< div className = "space-y-4" >
< p className = "text-sm text-slate-400" >
Н е н а ш л и о т в е т н а с в о й в о п р о с ? С в я ж и т е с ь с н а м и л ю б ы м у д о б н ы м с п о с о б о м :
< / p >
< div className = "space-y-3" >
< a
2026-02-06 02:23:02 +03:00
href = "https://t.me/"
2026-02-04 05:19:09 +03:00
target = "_blank"
rel = "noopener noreferrer"
className = "flex items-center gap-3 p-4 bg-slate-700/50 hover:bg-slate-700 rounded-lg transition-colors"
>
< MessageCircle className = "w-5 h-5" style = { { color : 'var(--primary)' } } / >
< div className = "flex-1" >
< div className = "font-medium" > Telegram п о д д е р ж к а < / div >
< div className = "text-xs text-slate-400" > О т в е т и м в т е ч е н и е 5 м и н у т < / div >
< / div >
< ChevronDown className = "w-5 h-5 rotate-[-90deg]" / >
< / a >
< div className = "p-4 bg-slate-700/30 rounded-lg" >
< div className = "text-sm text-slate-400" >
< div className = "flex items-center gap-2 mb-1" >
< Globe className = "w-4 h-4" style = { { color : 'var(--primary)' } } / >
< strong > Email : < / strong > support @umbrix . net
< / div >
< div className = "flex items-center gap-2" >
< Zap className = "w-4 h-4" style = { { color : 'var(--primary)' } } / >
< strong > В р е м я р а б о т ы : < / strong > 24 / 7
< / div >
< / div >
< / div >
< / div >
< / div >
< / section >
{ /* Spacer для нижнего отступа */ }
< div className = "h-8" / >
< / div >
< / div >
) ;
}