import type { Route } from "./+types/success"; import { useState, useEffect } from "react"; import { CheckCircleIcon, ArrowRightIcon, MonitorSmartphone, } from "lucide-react"; import { Link, useNavigate, useSearchParams } from "react-router"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "~/components/ui/card"; import { Button } from "~/components/ui/button"; export function meta({}: Route.MetaArgs) { return [ { title: "Khollisé - Connexion" }, { name: "description", content: "Connexion réussie à Khollisé" }, ]; } export default function AuthSuccessPage() { const navigate = useNavigate(); const [searchParams] = useSearchParams(); const [email, redirect, code] = ["email", "redirect", "code"].map((param) => searchParams.get(param) ); const [countdown, setCountdown] = useState(5000); // Valider l'URL de redirection const redirectUrl = "/home"; // isValidRedirectUrl(redirectParam) ? redirectParam : "/accueil" useEffect(() => { // Démarrer le compte à rebours pour la redirection const timer = setInterval(() => { setCountdown((prev) => { if (prev <= 1) { clearInterval(timer); navigate(redirectUrl); return 0; } return prev - 1; }); }, 1000); return () => clearInterval(timer); }, [redirectUrl, navigate]); return (
Authentification réussie Vous êtes maintenant connecté en tant que {email}

Cet appareil a été authentifié avec succès

Vous êtes maintenant connecté et pouvez accéder à votre compte.

Authentification multi-appareils

Si vous avez initié cette connexion depuis un autre appareil, celui-ci a également été authentifié.

Vous allez être redirigé dans{" "} {countdown} secondes...

Besoin d'aide ?

); }