diff --git a/docs-site/public/demo/demo-shell.js b/docs-site/public/demo/demo-shell.js index 2bf6b07..5c334ee 100644 --- a/docs-site/public/demo/demo-shell.js +++ b/docs-site/public/demo/demo-shell.js @@ -9,6 +9,8 @@ const stateMocks = new Set([ "depleted", "no-subscription", "trial", + "trial-telegram", + "referral-telegram", "devices", "notifications", "auth", diff --git a/docs-site/src/pages/demo.astro b/docs-site/src/pages/demo.astro index 75f8f1a..0a7ec7d 100644 --- a/docs-site/src/pages/demo.astro +++ b/docs-site/src/pages/demo.astro @@ -467,6 +467,8 @@ const docsHref = '/getting-started/demo/'; + + diff --git a/docs/getting-started/demo.md b/docs/getting-started/demo.md index c3e6caa..1da0a6c 100644 --- a/docs/getting-started/demo.md +++ b/docs/getting-started/demo.md @@ -11,6 +11,8 @@ - [Админка: пользователи](/demo/admin/users) - [Админка: бэкапы](/demo/admin/backups) - [Пробный период](/demo/home?mock=trial) +- [Email-only: нужен Telegram для триала](/demo/home?mock=trial-telegram) +- [Email-only: нужен Telegram для реферального бонуса](/demo/home?mock=referral-telegram) - [Докупка устройств](/demo/devices?mock=devices) - [Запуск бота для Telegram-уведомлений](/demo/home?mock=notifications) - [Вход и регистрация](/demo/login?mock=auth) diff --git a/frontend/src/lib/webapp/previewMock.js b/frontend/src/lib/webapp/previewMock.js index ecfe638..7cf57e8 100644 --- a/frontend/src/lib/webapp/previewMock.js +++ b/frontend/src/lib/webapp/previewMock.js @@ -672,6 +672,20 @@ function applyInactiveSubscriptionScenario({ trialAvailable = false } = {}) { DEMO_DATASET.tariff_change_options || DEV_MOCK.data.tariff_change_options; } +function applyEmailOnlyAccountPatch({ + email = "preview-user@mailinator.com", + referredById = null, +} = {}) { + DEV_MOCK.data.user = { + ...(DEV_MOCK.data.user || {}), + telegram_id: null, + telegram_linked: false, + email, + email_verified: true, + referred_by_id: referredById, + }; +} + export function applyPreviewMock(kind) { const mode = String(kind || "") .trim() @@ -720,11 +734,7 @@ export function applyPreviewMock(kind) { if (mode === "trial-telegram" || mode === "trial_requires_telegram") { applyInactiveSubscriptionScenario(); - DEV_MOCK.data.user = { - ...(DEV_MOCK.data.user || {}), - telegram_id: null, - telegram_linked: false, - }; + applyEmailOnlyAccountPatch({ email: "trial-user@mailinator.com" }); DEV_MOCK.data.settings.trial_enabled = true; DEV_MOCK.data.settings.trial_available = false; DEV_MOCK.data.settings.trial_requires_telegram = true; @@ -732,6 +742,30 @@ export function applyPreviewMock(kind) { DEV_MOCK.data.referral = { ...(DEV_MOCK.data.referral || {}), welcome_bonus_days: 3, + welcome_bonus_requires_telegram: false, + welcome_bonus_block_reason: "", + }; + return; + } + + if ( + mode === "referral-telegram" || + mode === "referral_welcome_telegram" || + mode === "referral-welcome-telegram" + ) { + applyInactiveSubscriptionScenario(); + applyEmailOnlyAccountPatch({ + email: "referral-user@mailinator.com", + referredById: 910001, + }); + DEV_MOCK.data.settings.trial_enabled = true; + DEV_MOCK.data.settings.trial_available = false; + DEV_MOCK.data.settings.trial_requires_telegram = false; + DEV_MOCK.data.settings.trial_block_reason = ""; + DEV_MOCK.data.referral = { + ...(DEV_MOCK.data.referral || {}), + welcome_bonus_days: 3, + welcome_bonus_without_telegram_enabled: false, welcome_bonus_requires_telegram: true, welcome_bonus_block_reason: "telegram_required", };