Files
netrunner-app/src/README.md
T
2026-07-02 23:33:06 +07:00

2.6 KiB

Frontend (src/)

React 19 + TypeScript + Vite. UI поверх Tauri IPC (см. ../src-tauri/README.md) — работает как в Tauri-webview (десктоп/Android), так и в обычном браузере при pnpm dev (Tauri API в этом случае недоступны, см. src/lib/platform.ts).

Поддиректории

Путь Назначение
pages/ Роуты приложения
features/README.md Крупные UI-фичи (кнопка VPN, селектор сервера, меню...)
store/README.md Zustand-стейт
lib/README.md API-клиент, платформенные хелперы
components/ui/ Автогенерированные примитивы shadcn/radix — не редактируются вручную, без отдельного README
components/shared/ Собственные переиспользуемые компоненты (кнопка-тумблер VPN, карточка настройки)
assets/flags/ Локальные SVG-флаги для статического списка серверов (см. store/README.md) — принципиально не грузятся с внешнего CDN, см. комментарий в features/CountrySelect.tsx
locales/ en.json / ru.json для i18next

Точки входа

  • main.tsx — монтирует <App/>, инициализирует i18n.js.
  • App.tsx — роутер, сплэш-скрин, фон-канвас (matrix-engine), корневой layout (Header + BurgerMenu + Outlet).
  • ThemeProvider.tsx — тёмная/светлая тема с синхронизацией в localStorage и системной темой; хук useTheme().
  • i18n.js — конфиг react-i18next (RU/EN, автоопределение языка).

Роуты (pages/)

  • Home.tsx — главный экран: VpnControl + CountrySelect + VpnStats.
  • Settings.tsx — killswitch, excluded domains, исключения приложений, reduce motion.
  • About.tsx — статическая информация о протоколе.
  • TelegramWeb.tsxтолько мобильный режим: отдельный sandbox-туннель (allow-list только для Telegram-пакетов), не завязан на выбор сервера в CountrySelect — IP/SNI зашиты в коде. На десктопе показывает блокирующий экран.