Commit Graph

964 Commits

Author SHA1 Message Date
github-actions[bot]
cc1182fd7b chore(main): release 1.14.1 2026-02-12 00:07:00 +00:00
Egor
96e24bf772 Merge pull request #216 from BEDOLAGA-DEV/dev
Dev
2026-02-12 03:06:39 +03:00
Fringg
a0b10e688c fix: allow email change for unverified emails without code verification
Skip code-based flow for unverified emails — replace email directly
and send verification to the new address. Show success step immediately
instead of asking for a verification code.
2026-02-11 18:28:49 +03:00
Fringg
1d6ec70116 fix: handle unlimited traffic package selection and button text
- Fix falsy check: selectedTrafficPackage !== null instead of truthy
  (gb=0 for unlimited was evaluated as false, hiding the buy button)
- Show "Buy Unlimited" instead of "Buy 0 GB" for unlimited packages
- Add buyUnlimited translation key to all 4 locales
2026-02-11 18:20:21 +03:00
Egor
7c3f42dbaf Merge pull request #214 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.14.0
2026-02-11 06:11:23 +03:00
github-actions[bot]
0c756eda4e chore(main): release 1.14.0 2026-02-11 03:10:57 +00:00
Egor
db1b7e7eea Merge pull request #213 from BEDOLAGA-DEV/dev
Dev
2026-02-11 06:10:33 +03:00
Fringg
2964236cdc refactor: replace forgot password modal with inline screen, fix Safari iOS animation jank 2026-02-11 06:06:22 +03:00
Fringg
d596b05048 fix: remove redundant subtitle and register hint from login page 2026-02-11 05:54:49 +03:00
Fringg
fc0dd39550 fix: use openTelegramLink for CryptoBot payment to open invoice in Telegram 2026-02-11 05:50:31 +03:00
Fringg
dcfd362c43 refactor: replace ChangeEmailModal with inline email change flow in Profile
- Remove modal-based email change (491 lines deleted)
- Add inline step-by-step flow directly in email card (email → code → success)
- Add change email button for unverified emails (typo fix use case)
- Hide change email for OAuth users (google, yandex, discord, vk)
- Auto-focus inputs, Enter submit, animated transitions, 3s auto-close on success
2026-02-11 05:42:47 +03:00
Fringg
45cbfb5ecb feat: compact login page with collapsible email, icon OAuth row, safe areas
- OAuth providers: horizontal icon row with labels instead of stacked full-width buttons
- Email form: collapsed by default behind "Войти по Email" pill toggle with smooth CSS Grid animation
- Telegram safe areas: use useTelegramSDK() for top/bottom insets with env() CSS fallback
- Compact layout: smaller logo (48x48), tighter spacing, fits on one mobile screen
- Language switcher offset by safe area to avoid Telegram header overlap
- 100dvh for proper Telegram Mini App viewport handling
2026-02-11 05:29:19 +03:00
Fringg
a744b41910 fix: harden OAuth login flow — open redirect, path traversal, info leak
- Validate authorize_url is HTTPS before redirect (open redirect prevention)
- encodeURIComponent on provider name in API URL paths (path traversal prevention)
- encodeURIComponent on referralCode in t.me deep link
- Gate console.warn behind import.meta.env.DEV (no info leak in prod)
2026-02-11 02:58:04 +03:00
Fringg
f74e316161 fix: guard oauthProviders with Array.isArray to prevent TypeError on Login page
Fixes 'Cannot read properties of undefined (reading length)' crash
in Telegram WebView when API returns unexpected response shape.
2026-02-11 02:42:32 +03:00
Fringg
6bf0af4ff3 fix: remove colored background from logo on login page
Match logo styling with the rest of the app - use dark neutral
background instead of accent gradient, consistent border and shadow.
2026-02-11 01:43:52 +03:00
Egor
db3d961185 Update package-lock.json 2026-02-10 07:39:04 +03:00
Fringg
069090a634 fix: restore package-lock.json for CI (npm ci requires it) 2026-02-10 07:35:04 +03:00
Fringg
687e90550b chore: remove package-lock.json from tracking
Add to .gitignore to avoid conflicts on git pull.
2026-02-10 04:31:52 +03:00
Egor
75c830ad0b Merge pull request #211 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.13.0
2026-02-09 23:07:48 +03:00
github-actions[bot]
0c273397f0 chore(main): release 1.13.0 2026-02-09 20:06:42 +00:00
Egor
244fb173df Merge pull request #210 from BEDOLAGA-DEV/dev
Release: admin enhancements, OAuth, connection page, performance improvements
2026-02-09 22:42:30 +03:00
Fringg
f10a02ceb6 feat: show affected subscriptions count on tariff deletion
Update delete mutation to use affected_subscriptions from API response.
Show contextual success notification with subscription count.
Add deleteSuccessWithSubscriptions translation key in all 4 locales.
2026-02-09 22:30:28 +03:00
c0mrade
32998697c3 Merge pull request #209 from BEDOLAGA-DEV/feat/connection-empty-state
Feat/connection empty state
2026-02-09 12:31:58 +03:00
c0mrade
a4e6e35da1 fix: check apps before subscription on connection page
Move the empty apps check before the subscription check so that
an empty or unconfigured appConfig shows "not configured" instead
of the misleading "no subscription" message.
2026-02-09 12:29:00 +03:00
c0mrade
772d83d1c9 fix: remove @floating-ui from radix chunk to resolve circular dependency 2026-02-09 11:45:19 +03:00
c0mrade
2c126f5e12 perf: extract locales into separate chunk
Move locale JSON files into a dedicated 'locales' chunk to reduce
the main index bundle from ~565 KB to ~186 KB.
2026-02-09 11:40:06 +03:00
c0mrade
fb25df6f0f feat: add empty state for connection page when no apps configured
Show different messages depending on user role:
- Regular users see a friendly "check back later" message
- Admins see a prompt with a link to /admin/apps settings
2026-02-09 11:23:33 +03:00
c0mrade
03a7db53fb Merge pull request #208 from BEDOLAGA-DEV/fix/hide-back-button-on-bottom-nav
fix: hide Telegram back button on bottom nav pages
2026-02-09 10:53:13 +03:00
c0mrade
e5ed6d0401 fix: hide Telegram back button on bottom nav pages
Back button was showing on all non-root routes including top-level
pages reachable from the bottom navigation menu (subscription, balance,
referral, support, wheel). These pages don't need a back button since
users navigate between them via the bottom tab bar.
2026-02-09 10:48:25 +03:00
Fringg
0389acdf83 fix: prevent useCloseOnSuccessNotification from firing on mount
The hook checked closeOthersSignal > 0 which only skipped signal=0.
After first payment, signal stays at 1+ forever causing TopUpAmount
to immediately navigate away on every mount. Now tracks the signal
value at mount time and only reacts to changes after mount.
2026-02-09 05:53:33 +03:00
Egor
2b92ff25e4 Merge pull request #206 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.12.0
2026-02-08 23:36:01 +03:00
github-actions[bot]
534228a07d chore(main): release 1.12.0 2026-02-08 20:35:39 +00:00
Egor
3bd9abb1db Merge pull request #205 from BEDOLAGA-DEV/dev
feat: admin panel enhancements & release history
2026-02-08 23:35:11 +03:00
Fringg
0c34668e40 feat: render GitHub markdown in release changelogs
Replace raw preformatted text with rendered markdown:
headers, bold, links, lists, inline code. Sanitized
with DOMPurify. Styled with Tailwind child selectors.
2026-02-08 23:28:07 +03:00
Fringg
a15b3d4101 feat: add admin updates page with release history
Shows bot and cabinet releases with version badges,
changelogs, and update detection via __APP_VERSION__.
2026-02-08 23:20:49 +03:00
Fringg
ab0270ac58 feat: add system info card to admin dashboard
Shows cabinet version, bot version, Python version, uptime, users and
active subscriptions at the bottom of the dashboard page.
2026-02-08 22:52:14 +03:00
Fringg
5678dfd558 feat: enable sorting on enrichment columns 2026-02-08 22:39:31 +03:00
Fringg
a8ea5c958f fix: show email for OAuth/email users in traffic table
Add email field to UserTrafficItem type and display it below
user name when no Telegram username is present.
2026-02-08 22:04:57 +03:00
Fringg
893c69ab6f feat: add enrichment columns to admin traffic usage table
Add 5 new columns (connected devices, spending, start/end dates, last node)
with progressive loading shimmer placeholders and 4-language translations.
2026-02-08 21:49:45 +03:00
Fringg
2dfa520604 feat: add admin traffic packages and device limit management UI
Add device limit +/- stepper, traffic packages display with inline
delete, add traffic dropdown from tariff config, translations for
ru/en/zh/fa.
2026-02-08 21:13:46 +03:00
Fringg
6f31fbe6b5 feat: add device management UI in admin user card
Show connected devices in subscription tab with ability to:
- View device platform, model, HWID and connection date
- Delete individual devices
- Reset all devices at once
2026-02-08 20:49:07 +03:00
Fringg
92d206f5b6 feat: add inline referral commission editing in admin user card
Admins can now edit individual referral commission percent directly
in the user detail card. Shows "Default" when no custom value is set.
2026-02-08 20:29:56 +03:00
Egor
866878db9e Merge pull request #204 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.11.1
2026-02-08 17:56:39 +03:00
github-actions[bot]
9ff9624c5f chore(main): release 1.11.1 2026-02-08 14:56:15 +00:00
Egor
dabf8dd5e7 Merge pull request #203 from BEDOLAGA-DEV/dev
Release: dev → main
2026-02-08 17:55:56 +03:00
Fringg
23f56afaf7 fix: stretch low-res Aurora canvas to fill viewport
OGL renderer.setSize() sets both the internal buffer and CSS dimensions,
so the 10% resolution canvas was only covering 10% of the screen.
Now explicitly reset canvas.style.width/height to 100% after setSize()
so the small buffer is upscaled by the browser to full viewport.
2026-02-08 17:46:23 +03:00
Fringg
56788b12e7 perf: reduce Aurora animated background GPU load by ~95%
- Render WebGL canvas at 10% viewport resolution (~20K px vs 2M px)
- Replace backdrop-filter: blur(80px) with filter: blur(20px) on canvas
  (backdrop-filter composites ALL layers underneath — 10-20x more expensive)
- Disable antialiasing (useless when output is blurred)
- Lower target FPS from 30 to 20 (imperceptible for ambient background)
- Add CSS contain: strict to isolate layout/paint recalculations
- Remove separate blur overlay div (one element instead of two)

Reported: GTX 1660S showed 30-55% GPU load with cabinet open.
Expected: ~1-5% GPU after this change.
2026-02-08 17:40:35 +03:00
Fringg
de09ea039b fix: hide backend URL from logo by fetching as blob
Logo images were exposing the backend API URL in the DOM via <img src>.
Now preloadLogo() fetches the image as a blob and serves it through
URL.createObjectURL(), so only blob: URLs appear in the page source.
Blob is invalidated on logo upload/delete.
2026-02-08 17:40:24 +03:00
Egor
6043ae6b39 Merge pull request #202 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.11.0
2026-02-08 16:19:04 +03:00
github-actions[bot]
0c68a4a4fd chore(main): release 1.11.0 2026-02-08 13:18:30 +00:00