From 5a6e4589c866a168656285deae214f178491cb12 Mon Sep 17 00:00:00 2001 From: c0mrade Date: Wed, 3 Jun 2026 11:54:23 +0300 Subject: [PATCH] =?UTF-8?q?fix(landing):=20=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=D0=BE=D0=BA=20=C2=ABLoading...=C2=BB=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D1=83=D1=81=D1=82=D0=B0=D1=8F=20=D0=B8=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BB=D0=B5=D0=BD=D0=B4=D0=B8=D0=BD=D0=B3=D0=B0?= =?UTF-8?q?=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Публичный лендинг (QuickPurchase) рендерится вне AppShell, а useBranding с заголовком/иконкой завязан на авторизацию — поэтому на лендинге вкладка оставалась с дефолтным «Loading...» из index.html (тайтл обновлялся только при заданном meta_title) и без favicon (href="data:,"). - index.html: нейтральная дефолтная иконка-монограмма вместо пустого data-URI и тайтл «VPN» вместо «Loading...». - QuickPurchase: тайтл берётся из meta_title || title лендинга; favicon ставится из брендинга (кастомный лого-блоб или буквенная монограмма), брендинг тянется из публичного эндпоинта. - favicon-хелперы вынесены в utils/favicon.ts; useBranding переведён на них (DRY) + добавлен буквенный фолбэк, чтобы иконка была всегда. - Тип LandingTariff дополнен is_daily/daily_price_kopeks (синхронно с бэком). --- index.html | 14 +++++++----- src/api/landings.ts | 3 +++ src/hooks/useBranding.ts | 16 +++++--------- src/pages/QuickPurchase.tsx | 44 +++++++++++++++++++++++++++++++++---- src/utils/favicon.ts | 35 +++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 20 deletions(-) create mode 100644 src/utils/favicon.ts diff --git a/index.html b/index.html index 6c22bd0..e48da2d 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,10 @@ - + - Loading... + VPN