diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx
index 3c242ed..e7af97f 100644
--- a/src/components/layout/Layout.tsx
+++ b/src/components/layout/Layout.tsx
@@ -14,6 +14,7 @@ import { wheelApi } from '../../api/wheel'
import { themeColorsApi } from '../../api/themeColors'
import { promoApi } from '../../api/promo'
import { useTheme } from '../../hooks/useTheme'
+import { useTelegramWebApp } from '../../hooks/useTelegramWebApp'
// Fallback branding from environment variables
const FALLBACK_NAME = import.meta.env.VITE_APP_NAME || 'Cabinet'
@@ -122,6 +123,18 @@ const WheelIcon = () => (
)
+const FullscreenIcon = () => (
+
+)
+
+const ExitFullscreenIcon = () => (
+
+)
+
export default function Layout({ children }: LayoutProps) {
const { t } = useTranslation()
const location = useLocation()
@@ -129,6 +142,7 @@ export default function Layout({ children }: LayoutProps) {
const [mobileMenuOpen, setMobileMenuOpen] = useState(false)
const { toggleTheme, isDark } = useTheme()
const [userPhotoUrl, setUserPhotoUrl] = useState(null)
+ const { isTelegramWebApp, isFullscreen, isFullscreenSupported, toggleFullscreen } = useTelegramWebApp()
// Fetch enabled themes from API - same source of truth as AdminSettings
const { data: enabledThemes } = useQuery({
@@ -352,6 +366,20 @@ export default function Layout({ children }: LayoutProps) {
{/* Right side */}
+ {/* Fullscreen toggle - only show in Telegram WebApp */}
+ {isTelegramWebApp && isFullscreenSupported && (
+
+ )}
+
{/* Theme toggle button - only show if both themes are enabled */}
{canToggle && (