Commit Graph

1370 Commits

Author SHA1 Message Date
c0mrade
2b43a30ccc fix: referral network rendering — portal fix and visual tuning
Portal to document.body escapes main's contain:content which broke
fixed positioning (container had height:0 and was clipped to main).

Visual fixes for 662+ node graphs:
- labels only on large nodes (threshold 6→14, density 0.5→0.12)
- leaf nodes 5px, referrers 10px, campaigns 16px
- edge opacity reduced to prevent white starburst
- default edge color opacity lowered
2026-03-19 11:12:05 +03:00
c0mrade
b787726d1b fix: referral network graph rendering and layout
- fix top offset breakpoint: sm:top-14 → lg:top-14 to match AppShell
  header visibility (mobile header is lg:hidden with h-16)
- add gravity to FA2 layout to prevent disconnected nodes from flying
  to extreme positions, making auto-rescale shrink everything to dots
- clamp outlier node positions after FA2 finishes (3σ threshold)
- add ResizeObserver to sync sigma canvas with container size changes
- call sigma.resize() before camera reset after FA2
- increase node sizes: user min 8→12, max 40→50, campaign 18→24
- reduce FA2 duration 5s→3s and slowDown 5→2 for tighter layout
2026-03-19 10:24:47 +03:00
Fringg
7c0b8e571a fix: graph layout, node visibility and FA2 settings
- Switch to CSS Grid layout for reliable content area height
- Use inferSettings() for ForceAtlas2 auto-tuning based on graph structure
- Enable linLogMode and adjustSizes for better node clustering
- Fit camera after layout settles with animatedReset
- Increase node sizes for better visibility (MIN 8, MAX 40)
- Center controls at bottom, fix overlay positions
2026-03-19 09:18:11 +03:00
Fringg
fd9a47ecda fix: position page below AppShell header, wait for container size
- Page uses top-16/sm:top-14 to start below AppShell header (z-50)
  instead of inset-0 which renders behind the header
- Sigma init polls with RAF until container has real dimensions
  instead of allowInvalidContainer which creates broken canvas
- Removed overflow-hidden from content area (not needed)
2026-03-19 09:04:55 +03:00
Fringg
6f58a0ce5d fix: defer Sigma init with requestAnimationFrame to prevent no-height crash
Container has no computed height when useEffect fires immediately
after data arrives. Defer to next animation frame so browser layout
completes. Also add allowInvalidContainer as safety net.
2026-03-19 08:56:31 +03:00
Fringg
3434073d7c fix: resolve Sigma container height error on page load
Use absolute positioning for graph container instead of flex-1
to ensure explicit dimensions when Sigma initializes.
2026-03-19 08:51:45 +03:00
Fringg
4ebd85b65d fix: fullscreen layout and filter dropdown positioning
- Page now uses fixed inset-0 overlay to fill entire viewport
- Simplified top bar to single row (back + title + search + filter)
- Filter dropdown uses absolute positioning on desktop (no layout shift)
- Filter button always visible, toggles dropdown on click
2026-03-19 08:43:39 +03:00
Fringg
ea143fdbc9 fix: redesign top bar and filter panel for mobile
- Split top bar into two rows on mobile: title + filter icon, then
  full-width search below
- Desktop keeps single-row layout with search and filter inline
- Filter button: icon-only on mobile with active indicator dot
- Filter panel: full-screen overlay with backdrop on mobile,
  inline dropdown on desktop
- Outside-click closes filter panel
- Removed subtitle (only on desktop, saves space)
2026-03-19 08:30:32 +03:00
Fringg
818557f57d fix: improve graph spacing, mobile layout, and Telegram viewport
- Increase FA2 scalingRatio to 10 and decrease gravity to 0.5 for
  better node spacing (less cluttered graph)
- Use 100dvh instead of 100vh for Telegram Mini App viewport compat
- Hide legend on mobile to prevent overlay collision
- Move controls to bottom-right on mobile, bottom-center on desktop
- Make stats single-column on mobile for compact layout
2026-03-19 08:20:38 +03:00
Fringg
0f756d633d fix: remove dead store code and add search input maxLength
- Remove unused networkData, searchQuery, searchResults from zustand store
- Remove setNetworkData write in NetworkGraph
- Add maxLength={200} to search input
2026-03-19 08:08:18 +03:00
Fringg
235eaec85f feat: add referral network graph visualization page
Interactive Sigma.js + graphology graph with ForceAtlas2 web worker
layout, campaign/user node coloring, filters via nodeReducer pattern,
search highlighting, user/campaign detail side panels, and 4-locale
translations. Dependencies: sigma v3, graphology, graphology-layout-forceatlas2.
2026-03-19 07:56:01 +03:00
Fringg
84f0e4e9b4 feat: add media attachment support for admin ticket replies
Admin can now attach photos, videos, and documents when replying to
tickets. Upload happens on file selection via existing media upload
endpoint. Includes attachment preview with type-specific icons,
upload progress, error handling, race condition protection, and
proper blob URL lifecycle management.

Added video player rendering for video attachments in message thread.
Updated ticket list preview to show [media_type] for media-only messages.
2026-03-19 06:39:05 +03:00
Egor
6c3286abbe Merge pull request #325 from BEDOLAGA-DEV/main
w
2026-03-18 23:33:00 +03:00
Fringg
aa8fbd1e23 feat: clickable user link to user card in admin payments 2026-03-18 23:30:18 +03:00
Fringg
4a33a61641 fix: handle long promo group names with truncation and flex-wrap 2026-03-18 22:52:32 +03:00
Fringg
c579abe6a3 feat: display user promo group badge on dashboard 2026-03-18 22:49:24 +03:00
Fringg
a3a6fad9b7 feat: display manual admin top-ups in sales statistics 2026-03-18 22:41:02 +03:00
Egor
da29e523b9 Merge pull request #324 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.37.1
2026-03-18 18:25:42 +03:00
github-actions[bot]
cabab3ebfc chore(main): release 1.37.1 2026-03-18 15:25:22 +00:00
Egor
15d31c1457 Merge pull request #323 from BEDOLAGA-DEV/dev
Dev
2026-03-18 18:24:50 +03:00
Egor
6a32bf3590 Merge pull request #322 from BEDOLAGA-DEV/main
w
2026-03-18 18:22:05 +03:00
Fringg
18b860533c fix: add tooltip text color for dark theme in landing stats charts 2026-03-18 18:00:39 +03:00
Fringg
d640cc1a04 fix: add tooltip text color for dark theme in all charts
Added color and itemStyle to Recharts Tooltip so text is visible on dark backgrounds.
2026-03-18 17:59:12 +03:00
Fringg
c5f621b399 fix: load telegram-web-app.js asynchronously to prevent page blocking
When telegram.org is unreachable, the synchronous script tag blocks
DOM parsing for ~51 seconds (TCP timeout), preventing the React app
from rendering and the deep link auth fallback from activating.
2026-03-18 16:41:17 +03:00
Egor
e16ad91c17 Merge pull request #321 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.37.0
2026-03-18 06:08:37 +03:00
github-actions[bot]
4ce242114e chore(main): release 1.37.0 2026-03-18 03:08:18 +00:00
Fringg
a7831668c0 chore: trigger release-please 2026-03-18 06:07:50 +03:00
Egor
52162c6735 Merge pull request #319 from BEDOLAGA-DEV/dev
Dev
2026-03-18 05:57:41 +03:00
Egor
9d2490f635 Merge pull request #318 from BEDOLAGA-DEV/main
w
2026-03-18 05:54:35 +03:00
Fringg
df73b3f77e feat: редизайн страницы платежей в админке — поиск, фильтры, статистика
Поиск по инвойсу/клиенту, фильтры по статусу/периоду/методу, карточки статистики,
кастомный диапазон дат, обработка ошибок, локализация на 4 языка.
2026-03-18 05:40:56 +03:00
Fringg
914a802c1b fix: добавлена подпись «Стоимость вращения» к блоку оплаты спина 2026-03-18 04:35:32 +03:00
Fringg
2d89b5e342 fix: блокировка кнопки устройств на странице подписки
Аналогичная блокировка как на дашборде — disabled + haptic + предупреждение
2026-03-18 04:27:33 +03:00
Fringg
8636bd7659 feat: блокировка кнопки устройств при лимите + убраны дубли трафика
- Кнопка «Подключить устройство» заблокирована при достижении лимита
- Haptic feedback при нажатии на заблокированную кнопку
- Предупреждение «Отключите устройства для подключения новых»
- Убран дублирующийся текст трафика под прогресс-баром (безлимит)
2026-03-18 04:21:34 +03:00
Fringg
246fafdbfc feat: добавлена поддержка SeverPay в кабинете
- Иконка SeverPay (синий градиент, SP)
- Лейбл в paymentMethods
- Статус decline в FAILED_STATUSES
- Локализация (ru, en, fa, zh)
2026-03-18 03:49:36 +03:00
Egor
4eca63b1c1 Downgrade version from 1.36.0 to 1.35.0 2026-03-18 02:14:32 +03:00
Egor
87c158ffa2 Update package-lock.json 2026-03-18 02:14:22 +03:00
Egor
eda99b46a8 Merge pull request #315 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.36.0
2026-03-18 02:10:03 +03:00
github-actions[bot]
70cf85f6e7 chore(main): release 1.36.0 2026-03-17 23:08:45 +00:00
Egor
d22f3474ef Merge pull request #314 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.35.0
2026-03-18 02:01:57 +03:00
github-actions[bot]
285d02d58c chore(main): release 1.35.0 2026-03-17 23:01:21 +00:00
Egor
a33367157b Merge pull request #313 from BEDOLAGA-DEV/dev
Dev
2026-03-18 02:00:50 +03:00
Egor
5fbebbb686 Merge pull request #312 from BEDOLAGA-DEV/main
ц
2026-03-18 01:59:48 +03:00
Fringg
11e81917af fix: скрыть плашку верификации email при выключенной верификации
- Добавлен verification_enabled в EmailAuthEnabled тип
- Баннер "Подтвердите email" скрыт когда верификация выключена
- Бейдж "Не подтверждён" скрыт когда верификация выключена
2026-03-18 01:53:10 +03:00
Fringg
b35000367b fix: recursive setTimeout, Strict Mode guard, isAxiosError
- Replace setInterval with recursive setTimeout to prevent overlapping async polls
- Add cancellation flag in auto-start effect for React Strict Mode double-mount
- Use isAxiosError() instead of unsafe type assertion
- Remove consumeCampaignSlug/consumeReferralCode from loginWithDeepLink (fired on every poll tick, destroying values after first 202)
2026-03-17 21:56:56 +03:00
Fringg
3d950252b7 fix: deep link auth timer cleanup and reliability
- Clear previous interval/timeout before starting new deep link auth
- Store expire timeout in ref for cleanup on unmount
- Use server expires_in instead of hardcoded 5 minutes
- Show error message when token expires (not just clear state)
- Add consumeCampaignSlug/consumeReferralCode to loginWithDeepLink
2026-03-17 21:46:12 +03:00
Fringg
6a1a9f5db7 feat: deep link авторизация при блокировке oauth.telegram.org
Добавлен fallback через бота когда виджет Telegram не загружается:
- Таймаут 8 сек на загрузку скрипта (OIDC + legacy)
- Автоматический переход на deep link auth
- Polling каждые 2.5 сек до подтверждения в боте
- ConnectedAccounts: таймаут + сообщение при недоступности
- Переводы: ru, en, zh, fa
2026-03-17 21:29:21 +03:00
Egor
1248ecb156 Merge pull request #309 from BEDOLAGA-DEV/release-please--branches--main--components--cabinet-frontend
chore(main): release 1.34.1
2026-03-16 04:14:34 +03:00
github-actions[bot]
b204da02ed chore(main): release 1.34.1 2026-03-16 01:13:49 +00:00
Egor
a4ec97ef71 Merge pull request #308 from BEDOLAGA-DEV/dev
Dev
2026-03-16 04:13:17 +03:00
Egor
77b3a157e8 Merge pull request #307 from BEDOLAGA-DEV/main
w
2026-03-16 04:11:44 +03:00