Commit Graph

99 Commits

Author SHA1 Message Date
c0mrade
2df86cd903 Merge pull request #152 from BEDOLAGA-DEV/feat/crypto-links-connection-page
Feat/crypto links connection page
2026-02-05 22:23:50 +03:00
c0mrade
65a671470d feat: use app-level svgIconKey for app logos and improve tile contrast
- Add svgIconKey field to RemnawaveAppClient and RemnawaveApp types
- Render app logos from svgLibrary via app.svgIconKey on connection page
  chips with fallback to getAppIcon() by name
- Use app.svgIconKey for app icons on admin apps settings page
- Show featured indicator as amber dot matching original RemnaWave UI
- Increase inner tile background opacity from 30% to 50% on subscription
  page for better text readability
2026-02-05 11:27:03 +03:00
c0mrade
445dd0601a feat: convert ConnectionModal to /connection page with crypto deep links
- Add @kastov/cryptohapp + jsencrypt for encrypted Happ deep links
- Add templateEngine utility to resolve {{SUBSCRIPTION_LINK}},
  {{HAPP_CRYPT3_LINK}}, {{HAPP_CRYPT4_LINK}}, {{USERNAME}} templates
- Convert ConnectionModal component into a standalone Connection page
- Add /connection route with ProtectedRoute and lazy loading
- Replace modal invocation in Dashboard and Subscription with
  navigate('/connection')
- Add type and svgIconKey optional fields to RemnawaveButton
- Show button type badge and SVG icon in AdminApps BlockCard
- Refactor ThemeTab to use local draft state with Save/Cancel flow
2026-02-05 07:33:45 +03:00
Fringg
998f9dbaf0 feat(subscription): auto-skip server selection step when only one available
- Add getAvailableServers helper to filter available servers
- Skip servers step in purchase wizard when only 1 server available
- Auto-select the single server on options load and period change
- Works for both new purchases and renewals in classic mode
2026-02-05 07:32:28 +03:00
Fringg
46b93ef098 fix(subscription): display promo group discounts in device/traffic purchase and tariff switch
- Add discount fields to TrafficPackage and TariffSwitchPreview types
- Show strikethrough original price and discount badge for device purchase
- Show discount badge and original price for traffic packages
- Show discount info and free label for tariff switch with 100% discount
2026-02-05 06:26:27 +03:00
c0mrade
c8c9920ade Merge remote-tracking branch 'origin/main' into feat/linear-ui-redesign
# Conflicts:
#	src/components/PromoDiscountBadge.tsx
2026-02-04 03:25:35 +03:00
Egor
6c8d2ad69e Update Subscription.tsx 2026-02-04 01:17:05 +03:00
Egor
026cb47694 Update Subscription.tsx 2026-02-04 01:08:05 +03:00
Egor
9804e3a874 Update Subscription.tsx 2026-02-04 01:00:49 +03:00
Egor
158a47e1e1 Update Subscription.tsx 2026-02-04 00:50:50 +03:00
c0mrade
f147c10a25 Merge remote-tracking branch 'origin/main' into feat/linear-ui-redesign
# Conflicts:
#	src/pages/AdminUsers.tsx
2026-02-03 21:48:38 +03:00
Egor
192ac71a02 Update Subscription.tsx 2026-02-03 03:49:06 +03:00
c0mrade
c815ac29ea fix: scroll to start of tariffs section and wait for data to load 2026-02-02 07:02:50 +03:00
Egor
1af7dee04d Update Subscription.tsx 2026-02-02 05:22:18 +03:00
Egor
196c826aa8 Add files via upload 2026-02-02 05:19:42 +03:00
Egor
de7c911a7e Update Subscription.tsx 2026-02-01 17:19:59 +03:00
Egor
8007c1b4c1 Update Subscription.tsx 2026-01-31 20:48:10 +03:00
Egor
313a6039cc Update Subscription.tsx 2026-01-31 20:31:51 +03:00
c0mrade
0be1ef0340 feat: auto-close modals when success notification appears
- Add closeOthersSignal to success notification store
- Create useCloseOnSuccessNotification hook for modals to subscribe
- Update TopUpModal to auto-close on success events
- Update InsufficientBalancePrompt to auto-close on success events
- Update Subscription page to close all modals/forms on success events

This ensures that when a WebSocket event indicates successful payment
or subscription purchase, all related modals close automatically,
providing clear feedback to users.
2026-01-30 19:54:29 +03:00
Egor
2d0f1b91da Update Subscription.tsx 2026-01-30 18:05:21 +03:00
Egor
dd5cb7789f Update Subscription.tsx 2026-01-30 18:00:41 +03:00
Egor
b18ccf005d Add files via upload 2026-01-29 01:04:26 +03:00
Egor
7b7021a603 Update Subscription.tsx 2026-01-28 20:39:19 +03:00
Egor
475ce7d13f Update Subscription.tsx 2026-01-28 20:33:54 +03:00
c0mrade
4b35d8c392 fix(i18n): rename subscription.servers object to subscription.serverManagement
Resolves conflict where subscription.servers existed as both a nested
object (for server management UI keys) and a pluralization base key.
Renamed the nested object to serverManagement in all 4 locales and
updated all t() references in Subscription.tsx.
2026-01-27 22:47:41 +03:00
c0mrade
9707ad97a4 feat(i18n): migrate all hardcoded Russian text to i18n
- Replace all hardcoded Russian strings with t() calls across 30+ files
- Add ~500 new translation keys to all 4 locales (ru, en, zh, fa)
- Convert module-level config objects to labelKey pattern
- Remove Russian fallbacks from t() calls (fallbackLng handles it)
- Replace DeepLinkRedirect custom i18n with standard t() calls
- Fix subscription.servers key collision (string vs object)
2026-01-27 22:19:41 +03:00
c0mrade
bc90ba3779 refactor: migrate to eslint flat config and format codebase with prettier
- Remove legacy .eslintrc.cjs and .eslintignore
- Add eslint.config.js with flat config, security rules (no-eval, no-implied-eval, no-new-func, no-script-url)
- Add .prettierrc and .prettierignore
- Format entire codebase with prettier
2026-01-27 17:37:31 +03:00
Egor
096cf7e918 Update Subscription.tsx 2026-01-27 16:07:12 +03:00
Egor
4fc7712bef Update Subscription.tsx 2026-01-26 23:24:30 +03:00
Egor
c2c2399af1 Update Subscription.tsx 2026-01-26 23:23:38 +03:00
Egor
767b666962 Update Subscription.tsx 2026-01-23 03:39:08 +03:00
Egor
e51d4d3d71 Update Subscription.tsx 2026-01-23 03:35:27 +03:00
Egor
5709ab4ff1 Add files via upload 2026-01-21 09:08:08 +03:00
Egor
1880cffad9 Update Subscription.tsx 2026-01-21 06:43:44 +03:00
Dev
c92a4e7704 feat: complete Phase 2 - refactor all user pages to Bento UI 2026-01-20 22:26:13 +05:00
Egor
3c5869684f Update Subscription.tsx 2026-01-20 07:21:18 +03:00
Egor
ea47b09bad Update Subscription.tsx 2026-01-20 06:38:51 +03:00
Egor
56e0023372 Update Subscription.tsx 2026-01-20 06:33:20 +03:00
Egor
895cb5ada7 Update Subscription.tsx 2026-01-19 00:41:50 +03:00
Egor
a7f0d705ff Add files via upload 2026-01-19 00:36:19 +03:00
Egor
de4a694efd Update Subscription.tsx 2026-01-18 07:01:51 +03:00
Egor
4e1182449b Add files via upload 2026-01-18 06:22:42 +03:00
Egor
6baa573e4b Update Subscription.tsx 2026-01-18 06:12:53 +03:00
Egor
386acef176 Add files via upload 2026-01-18 06:03:11 +03:00
Egor
a96e4dc580 Update Subscription.tsx 2026-01-16 07:26:22 +03:00
Egor
320294ff9b Add files via upload 2026-01-16 01:32:30 +03:00
Egor
09e27b96c2 Update Subscription.tsx 2026-01-16 01:09:27 +03:00
Egor
6c7e4e58e0 Update Subscription.tsx 2026-01-16 00:30:28 +03:00
Egor
7be6b5c0ae Add files via upload 2026-01-15 19:18:17 +03:00