'use client' import { useState, useRef } from 'react' import { QRCodeCanvas } from 'qrcode.react' import type { Link } from '@/lib/types' import { formatNumber } from '@/lib/utils' interface LinkResultProps { link: Link shortUrl: string isReused?: boolean onReset: () => void } // Composant d'affichage du résultat après création de lien export default function LinkResult({ link, shortUrl, isReused, onReset }: LinkResultProps) { const [copied, setCopied] = useState(false) const [qrCopied, setQrCopied] = useState(false) const qrRef = useRef(null) // Copier le lien dans le presse-papier const copyLink = async () => { try { await navigator.clipboard.writeText(shortUrl) setCopied(true) setTimeout(() => setCopied(false), 2000) } catch (error) { console.error('Erreur lors de la copie:', error) } } // Copier le QR Code dans le presse-papier const copyQRCode = async () => { try { const canvas = qrRef.current?.querySelector('canvas') if (!canvas) return const blob = await new Promise((resolve) => { canvas.toBlob((b) => resolve(b!), 'image/png') }) await navigator.clipboard.write([ new ClipboardItem({ 'image/png': blob }), ]) setQrCopied(true) setTimeout(() => setQrCopied(false), 2000) } catch { // Fallback: télécharger si la copie échoue downloadQRCode() } } // Télécharger le QR Code const downloadQRCode = () => { const canvas = qrRef.current?.querySelector('canvas') if (!canvas) return const url = canvas.toDataURL('image/png') const a = document.createElement('a') a.href = url a.download = `reducelink-${link.shortCode}-qr.png` a.click() } return (
{/* Message de réutilisation */} {isReused && (
Ce lien existait déjà, nous l'avons réutilisé.
)} {/* En-tête succès */}

Lien créé avec succès !

{formatNumber(link.clickCount)} clic{link.clickCount !== 1 ? 's' : ''}

{/* Lien raccourci */}
{/* URL originale */}

{link.originalUrl}

{/* QR Code */}
{/* Nouveau lien */}
) }