diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 57fbd02..00c644b 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -62,3 +62,4 @@ jobs:
VITE_TELEGRAM_BOT_USERNAME=
VITE_APP_NAME=Cabinet
VITE_APP_LOGO=V
+ VITE_APP_VERSION=${{ github.ref_name }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index fe4ab04..8122984 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -34,6 +34,7 @@ jobs:
VITE_TELEGRAM_BOT_USERNAME:
VITE_APP_NAME: Bedolaga Cabinet
VITE_APP_LOGO: V
+ VITE_APP_VERSION: ${{ github.ref_name }}
- name: Create dist archive
run: |
diff --git a/Dockerfile b/Dockerfile
index 8293e10..47c7a63 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,12 +18,14 @@ ARG VITE_API_URL=/api
ARG VITE_TELEGRAM_BOT_USERNAME
ARG VITE_APP_NAME=Cabinet
ARG VITE_APP_LOGO=V
+ARG VITE_APP_VERSION
# Set environment variables for build
ENV VITE_API_URL=$VITE_API_URL
ENV VITE_TELEGRAM_BOT_USERNAME=$VITE_TELEGRAM_BOT_USERNAME
ENV VITE_APP_NAME=$VITE_APP_NAME
ENV VITE_APP_LOGO=$VITE_APP_LOGO
+ENV VITE_APP_VERSION=$VITE_APP_VERSION
# Build the application
RUN npm run build
diff --git a/src/components/layout/Layout.tsx b/src/components/layout/Layout.tsx
index ad725d1..d3a4734 100644
--- a/src/components/layout/Layout.tsx
+++ b/src/components/layout/Layout.tsx
@@ -11,6 +11,7 @@ import { pollsApi } from '../../api/polls'
import { brandingApi } from '../../api/branding'
import { wheelApi } from '../../api/wheel'
import { themeColorsApi } from '../../api/themeColors'
+import { promoApi } from '../../api/promo'
import { useTheme } from '../../hooks/useTheme'
// Fallback branding from environment variables
@@ -210,6 +211,17 @@ export default function Layout({ children }: LayoutProps) {
retry: false,
})
+ // Fetch active discount to determine mobile layout
+ const { data: activeDiscount } = useQuery({
+ queryKey: ['active-discount'],
+ queryFn: promoApi.getActiveDiscount,
+ enabled: isAuthenticated,
+ staleTime: 30000,
+ })
+
+ // Check if promo is active (to hide language switcher on mobile)
+ const isPromoActive = activeDiscount?.is_active && activeDiscount?.discount_percent
+
const navItems = useMemo(() => {
const items = [
{ path: '/', label: t('nav.dashboard'), icon: HomeIcon },
@@ -339,7 +351,10 @@ export default function Layout({ children }: LayoutProps) {