import { useState } from "react"; import { useParams } from "wouter"; import { trpc } from "@/lib/trpc"; import SignaturePadComponent from "@/components/SignaturePad"; import { Button } from "@/components/ui/button"; import { Card } from "@/components/ui/card"; import { FileText, Loader2, CheckCircle2, PenTool } from "lucide-react"; export default function SignerAttestation() { const params = useParams(); const attestationId = params.id ? parseInt(params.id) : null; const [showSignaturePad, setShowSignaturePad] = useState(false); const [isSigned, setIsSigned] = useState(false); const { data: attestation, isLoading } = trpc.attestations.get.useQuery( { apprenantId: 0, // TODO: récupérer depuis le token sequenceId: 0, }, { enabled: !!attestationId, } ); const uploadSignatureMutation = trpc.attestations.uploadSignature.useMutation({ onSuccess: () => { setIsSigned(true); setShowSignaturePad(false); }, }); const handleSaveSignature = async (dataUrl: string) => { if (!attestationId) return; await uploadSignatureMutation.mutateAsync({ attestationId, signatureDataUrl: dataUrl, }); }; if (isLoading) { return (
Chargement de votre attestation...
Le lien que vous avez suivi n'est pas valide ou a expiré.
Votre signature a été enregistrée avec succès. Vous recevrez votre attestation signée par email.
Date de signature :{" "} {new Date().toLocaleDateString("fr-FR", { day: "numeric", month: "long", year: "numeric", hour: "2-digit", minute: "2-digit", })}
Signez électroniquement votre attestation de formation
En signant, vous certifiez avoir suivi cette formation et acceptez que votre signature soit intégrée à l'attestation.