From 0a1ab064d7bf181fd690eeaf3e4d09723a0223e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Wed, 23 Jul 2025 20:14:53 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20ajout=C3=A9=20feedback=20visuel=20pour?= =?UTF-8?q?=20bouton=20partage=20en-t=C3=AAte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Notifications snackbar pour partage natif et copie presse-papier - Gestion erreurs avec messages appropriés - Fallback complet pour navigateurs plus anciens --- components/versions/version-page.js | 38 +++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/components/versions/version-page.js b/components/versions/version-page.js index e7a0836..e45f827 100644 --- a/components/versions/version-page.js +++ b/components/versions/version-page.js @@ -108,13 +108,47 @@ export default function VersionPage({session, versionId, viewMode}) { text: 'Découvrez cette version sur Konstitisyon.la', url }) + setSnackbar({ + open: true, + message: 'Version partagée', + severity: 'success' + }) } else { // Fallback: copy URL to clipboard - await navigator.clipboard.writeText(url) - // Could show a toast notification here + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(url) + } else { + // Fallback for older browsers + const textArea = document.createElement('textarea') + textArea.value = url + textArea.style.position = 'fixed' + textArea.style.left = '-999999px' + textArea.style.top = '-999999px' + document.body.append(textArea) + textArea.focus() + textArea.select() + + const result = document.execCommand('copy') + textArea.remove() + + if (!result) { + throw new Error('Copy command failed') + } + } + + setSnackbar({ + open: true, + message: 'Lien copié dans le presse-papier', + severity: 'success' + }) } } catch (error) { console.error('Failed to share:', error) + setSnackbar({ + open: true, + message: 'Impossible de partager cette version', + severity: 'error' + }) } }