"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; export default function Home() { const router = useRouter(); const [checked, setChecked] = useState(false); useEffect(() => { // Détecter si on est dans l'app admin // Méthode 1: Vérifier si Capacitor est disponible (APK) const isCapacitor = typeof window !== "undefined" && (window as any).Capacitor; // Méthode 2: Vérifier le user agent ou l'URL const isAdminPath = typeof window !== "undefined" && (window.location.pathname.startsWith("/admin") || window.location.search.includes("admin=true")); // Méthode 3: Vérifier si on a un mot de passe admin en localStorage const hasAdminPassword = typeof window !== "undefined" && localStorage.getItem("adminPassword") !== null; // Si on est dans Capacitor OU qu'on a un mot de passe admin, c'est l'app admin const isAdminApp = isCapacitor || isAdminPath || hasAdminPassword; if (isAdminApp) { // Vérifier si l'admin est connecté const adminPassword = typeof window !== "undefined" ? localStorage.getItem("adminPassword") : null; if (adminPassword) { // Tester la connexion (si API disponible) fetch("/api/admin/clients", { headers: { Authorization: `Bearer ${adminPassword}`, }, }) .then((res) => { if (res.ok) { router.replace("/admin"); } else if (res.status === 404) { // API non disponible (mode statique) - accepter quand même router.replace("/admin"); } else { localStorage.removeItem("adminPassword"); router.replace("/admin/login"); } }) .catch(() => { // Erreur réseau (API non disponible en mode statique) // Accepter quand même et rediriger vers /admin router.replace("/admin"); }); } else { // Pas de mot de passe, rediriger vers login router.replace("/admin/login"); } } else { // App client normale router.replace("/accueil"); } setChecked(true); }, [router]); if (!checked) { return (
Chargement...