espace-paie-odentas/app/signature-salarie/page.tsx
odentas 542e0e963d feat: Stocker et utiliser employee_docuseal_slug pour signature-salarie
- Ajout colonne employee_docuseal_slug dans cddu_contracts
- Stockage automatique du slug lors de création signature DocuSeal
- Recherche directe par slug (+ rapide et fiable)
- Bypass mode maintenance en localhost
- Scripts de migration pour contrats existants (92 contrats migrés)
- Logs détaillés dans verify-birthdate et check-status

Fixes: Erreur 'Document introuvable' pour contrats anciens
Performance: O(n) -> O(1) avec index sur employee_docuseal_slug
2025-10-22 17:35:50 +02:00

40 lines
1.3 KiB
TypeScript

import { Suspense } from "react";
import { redirect } from "next/navigation";
import { createSbServer } from "@/lib/supabaseServer";
import SignatureSalarieContent from "./SignatureSalarieContent";
export default async function SignatureSalariePage() {
const sb = createSbServer();
// Vérifier si on est en localhost
const isLocalhost = process.env.NODE_ENV === 'development' ||
process.env.NEXT_PUBLIC_SITE_URL?.includes('localhost');
// Récupérer le statut de maintenance uniquement si pas en localhost
if (!isLocalhost) {
const { data: maintenanceStatus } = await sb
.from("maintenance_status")
.select("*")
.single();
// Si en maintenance, rediriger vers la page de maintenance
if (maintenanceStatus?.is_maintenance_mode) {
redirect("/maintenance");
}
}
return (
<div className="min-h-screen bg-gray-50">
<Suspense fallback={
<div className="flex items-center justify-center min-h-screen">
<div className="text-center">
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-4"></div>
<div className="text-gray-600">Chargement du formulaire de signature...</div>
</div>
</div>
}>
<SignatureSalarieContent />
</Suspense>
</div>
);
}