Compare commits
2 Commits
092d537180
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
29d6ab3d80
|
|||
|
429eb07291
|
69
app/page.tsx
69
app/page.tsx
@ -9,20 +9,63 @@ export default function Home() {
|
||||
|
||||
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;
|
||||
let isAdminApp = false;
|
||||
|
||||
// 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 (typeof window !== "undefined") {
|
||||
const Capacitor = (window as any).Capacitor;
|
||||
|
||||
// Méthode 1: Vérifier l'appId de Capacitor via le package name Android
|
||||
if (Capacitor) {
|
||||
try {
|
||||
const platform = Capacitor.getPlatform();
|
||||
|
||||
if (platform === "android") {
|
||||
// En Android, on peut récupérer le package name via Capacitor.getApp()
|
||||
// APK admin: com.pensionmarama.admin
|
||||
// APK client: com.pensionmarama.app
|
||||
const App = Capacitor.Plugins?.App;
|
||||
if (App) {
|
||||
App.getInfo().then((info: any) => {
|
||||
// Le package name est dans info.id ou info.appId
|
||||
const appId = info.id || info.appId || "";
|
||||
if (appId.includes("admin")) {
|
||||
isAdminApp = true;
|
||||
}
|
||||
}).catch(() => {
|
||||
// Fallback si getInfo() échoue
|
||||
});
|
||||
}
|
||||
|
||||
// Fallback: Vérifier le localStorage (si adminPassword existe, c'est admin)
|
||||
const hasAdminPassword = localStorage.getItem("adminPassword") !== null;
|
||||
if (hasAdminPassword) {
|
||||
isAdminApp = true;
|
||||
}
|
||||
} else {
|
||||
// Pour web, vérifier le localStorage
|
||||
const hasAdminPassword = localStorage.getItem("adminPassword") !== null;
|
||||
if (hasAdminPassword) {
|
||||
isAdminApp = true;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// En cas d'erreur, fallback sur les autres méthodes
|
||||
console.warn("Erreur lors de la détection Capacitor:", e);
|
||||
}
|
||||
}
|
||||
|
||||
// Méthode 2: Vérifier le path ou query string (pour web)
|
||||
if (!isAdminApp && (
|
||||
window.location.pathname.startsWith("/admin") ||
|
||||
window.location.search.includes("admin=true")
|
||||
)) {
|
||||
isAdminApp = true;
|
||||
}
|
||||
|
||||
// Méthode 3: Si on est dans Capacitor Android sans adminPassword,
|
||||
// on considère que c'est l'app client (redirige vers /accueil)
|
||||
// Sauf si le pathname commence par /admin
|
||||
}
|
||||
|
||||
if (isAdminApp) {
|
||||
// Vérifier si l'admin est connecté
|
||||
|
||||
BIN
dist/compagnon-admin-debug.apk
vendored
BIN
dist/compagnon-admin-debug.apk
vendored
Binary file not shown.
BIN
dist/compagnon-lagon-beta.apk
vendored
BIN
dist/compagnon-lagon-beta.apk
vendored
Binary file not shown.
Reference in New Issue
Block a user