diff --git a/web/src/components/BackofficeLayout.tsx b/web/src/components/BackofficeLayout.tsx index 8cc2f86..a1a6462 100644 --- a/web/src/components/BackofficeLayout.tsx +++ b/web/src/components/BackofficeLayout.tsx @@ -21,7 +21,8 @@ import { import { Link as RouterLink, NavLink, Outlet, useNavigate } from 'react-router-dom' import { useAuth } from '../lib/auth' import { ColorModeToggle } from './ColorModeToggle' - +import { useState, useCallback, useEffect } from 'react' +import { api, ApiError } from '../lib/api' const HamburgerIcon = () => ( @@ -31,9 +32,26 @@ const HamburgerIcon = () => ( const SUPPORT_TELEGRAM_URL = 'https://t.me/OMNEX_CORP' export function BackofficeLayout() { + const [typeAbo, setTypeAbo] = useState(null) + const { logout, isAdmin, isClient } = useAuth() const navigate = useNavigate() const { isOpen, onOpen, onClose } = useDisclosure() + const isPremium = typeAbo === 'premium' + + + const load = useCallback(async () => { + try { + const me = await api.me() + setTypeAbo(me.type_abonnement ?? null) + } catch (err) { + if (err instanceof ApiError && err.status === 401) navigate('/login') + } + }, [navigate]) + + useEffect(() => { + void load() + }, [load]) const onLogout = async () => { const loginPath = isAdmin ? '/admin/login' : '/login' @@ -57,6 +75,7 @@ export function BackofficeLayout() { {isClient && Abonnement} {isClient && Applications} {(isAdmin || isClient) && Profile} + {isClient && {isPremium ? 'Ma plateforme' : 'Ma démo'}} {isAdmin && Démos} {isAdmin && Premium} {isAdmin && Codes}