Checkpoint: Affichage des images de signature (matin et après-midi) directement dans la page d'émargement pour les apprenants et formateurs. Les images s'affichent en miniature (h-8 w-16) à côté des informations de présence et sont cliquables pour agrandissement.

This commit is contained in:
Manus
2026-02-10 05:09:37 -05:00
parent 672494ccc0
commit 023a047ee0
2 changed files with 29 additions and 36 deletions

View File

@@ -381,19 +381,15 @@ export default function FormateurEmargement() {
minute: "2-digit"
})}</span>
{presenceInfo.signatureUrl && (
<Button
size="sm"
variant="ghost"
className="h-5 w-5 p-0"
<img
src={presenceInfo.signatureUrl}
alt="Signature"
className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => {
setSelectedSignature(presenceInfo.signatureUrl!);
setShowSignatureDialog(true);
}}
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
/>
)}
</div>
);
@@ -441,19 +437,15 @@ export default function FormateurEmargement() {
minute: "2-digit"
})}</span>
{presenceInfo.signatureUrl && (
<Button
size="sm"
variant="ghost"
className="h-5 w-5 p-0"
<img
src={presenceInfo.signatureUrl}
alt="Signature"
className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => {
setSelectedSignature(presenceInfo.signatureUrl!);
setShowSignatureDialog(true);
}}
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
/>
)}
</div>
);
@@ -561,19 +553,15 @@ export default function FormateurEmargement() {
minute: "2-digit"
})}</span>
{dateGroup.matin.signatureUrl && (
<Button
size="sm"
variant="ghost"
className="h-5 w-5 p-0"
<img
src={dateGroup.matin.signatureUrl}
alt="Signature formateur"
className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => {
setSelectedSignature(dateGroup.matin.signatureUrl!);
setShowSignatureDialog(true);
}}
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
/>
)}
</div>
)}
@@ -600,19 +588,15 @@ export default function FormateurEmargement() {
minute: "2-digit"
})}</span>
{dateGroup.apres_midi.signatureUrl && (
<Button
size="sm"
variant="ghost"
className="h-5 w-5 p-0"
<img
src={dateGroup.apres_midi.signatureUrl}
alt="Signature formateur"
className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => {
setSelectedSignature(dateGroup.apres_midi.signatureUrl!);
setShowSignatureDialog(true);
}}
>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
/>
)}
</div>
)}