diff --git a/ui/src/lib/telegram.ts b/ui/src/lib/telegram.ts index cbc1889..9946896 100644 --- a/ui/src/lib/telegram.ts +++ b/ui/src/lib/telegram.ts @@ -14,6 +14,10 @@ interface TelegramWebApp { themeParams?: TelegramThemeParams; colorScheme?: 'light' | 'dark'; isFullscreen?: boolean; + isExpanded?: boolean; + viewportHeight?: number; + viewportStableHeight?: number; + exitFullscreen?: () => void; safeAreaInset?: { top: number; bottom: number; left: number; right: number }; contentSafeAreaInset?: { top: number; bottom: number; left: number; right: number }; ready?: () => void; @@ -469,6 +473,25 @@ export function collectTelegramDiag(): TelegramDiag { }; } +/** + * telegramChromeDiag is a TEMPORARY on-device readout of Telegram's viewport / fullscreen state, + * rendered in the lobby to debug the Android fullscreen-persistence issue (the app still opens + * fullscreen on Android even though requestFullscreen is now iOS-only). REMOVE before merge. + */ +export function telegramChromeDiag(): string { + const w = webApp(); + if (!w) return 'no telegram'; + const ih = typeof window === 'undefined' ? 0 : window.innerHeight; + const sh = typeof screen === 'undefined' ? 0 : screen.height; + return [ + `platform: ${w.platform ?? '—'} version: ${w.version ?? '—'}`, + `isFullscreen: ${w.isFullscreen} isExpanded: ${w.isExpanded}`, + `viewportH: ${w.viewportHeight ?? '—'} stableH: ${w.viewportStableHeight ?? '—'}`, + `innerH: ${ih} screenH: ${sh}`, + `contentSafeTop: ${w.contentSafeAreaInset?.top ?? '—'} safeTop: ${w.safeAreaInset?.top ?? '—'}`, + ].join('\n'); +} + // --- Login Widget (web sign-in for account linking) --- // The Login Widget is the web (non-Mini-App) Telegram sign-in. It is used only to diff --git a/ui/src/screens/Lobby.svelte b/ui/src/screens/Lobby.svelte index b06ba42..af3fd3e 100644 --- a/ui/src/screens/Lobby.svelte +++ b/ui/src/screens/Lobby.svelte @@ -9,6 +9,7 @@ import { gateway } from '../lib/gateway'; import { navigate } from '../lib/router.svelte'; import { t } from '../lib/i18n/index.svelte'; + import { insideTelegram, telegramChromeDiag } from '../lib/telegram'; // TEMP diag — remove before merge import { resultBadge } from '../lib/result'; import { badgeKind } from '../lib/unread'; import { getLobby, setLobby } from '../lib/lobbycache'; @@ -223,6 +224,12 @@
+ + {#if insideTelegram()} +
{telegramChromeDiag()}
+ {/if} {#if invitations.length}

{t('lobby.invitations')}