📄 Composant Copier la publication

Merci d’avoir identifiĂ© cela @Moin. J’ai appliquĂ© un correctif :

6 « J'aime »

Je reçois ce message d’erreur chaque fois que je clique sur le bouton Copier :

1 « J'aime »

Voyez-vous une erreur dans la console du navigateur ?

J’ai mentionnĂ© ce problĂšme sur l’autre sujet.

1 « J'aime »

J’ai remarquĂ© une erreur sur un site qui utilise le composant de maniĂšre anonyme :

J’ai créé une PR pour corriger cela :

4 « J'aime »

La RP est maintenant fusionnée ; merci, Keegan !

3 « J'aime »

les utilisateurs de ce composant reçoivent-ils cette erreur plus récemment

Je viens de l’installer, voici une idĂ©e :

Cliquez sur le bouton de copie de plusieurs messages pour « construire » votre presse-papiers. De cette façon, vous pouvez copier rapidement une section entiĂšre d’un fil de discussion de maniĂšre sĂ©lective.

Disons qu’il y a cinq messages :

Message A
Message B
Message C
Message D
Message E

Vous copiez D, puis B, puis E. Ce qui se trouve dans votre presse-papiers est en fait :

B
D
E

Ainsi, le presse-papiers est organisĂ© en fonction de leur chronologie dans la conversation, et non de l’ordre dans lequel vous les copiez.

J’ai eu une erreur sur ce point, et comme c’est une erreur JS cĂŽtĂ© client, je ne peux pas la trouver dans \logs. Ma version de Discourse est 2026.7.0-latest +188

J’ai approfondi l’analyse en me basant sur la rĂ©vision exacte de Discourse au moment oĂč j’ai initialement constatĂ© le problĂšme, ainsi que sur la branche main actuelle.

Sur une configuration historique de juillet reconstituĂ©e, j’ai pu reproduire un Ă©chec liĂ© au presse-papiers : la fonction « Copier le message » pouvait afficher l’indication de succĂšs (coche) alors que le contenu du presse-papiers n’était pas rĂ©ellement remplacĂ©. Je ne peux pas confirmer qu’il s’agissait de la mĂȘme erreur sous-jacente que l’erreur de thĂšme/composant visible dans ma capture d’écran d’origine de juillet.

Cependant, la mĂȘme implĂ©mentation de « Copier le message » fonctionne dĂ©sormais sur mon instance de production actuelle, y compris dans une PWA sur Safari iOS.

J’ai comparĂ© le code pertinent entre la rĂ©vision de Discourse de juillet et la branche main actuelle. L’implĂ©mentation du presse-papiers de « Copier le message » elle-mĂȘme n’a pas changĂ©, et je n’ai pas trouvĂ© de modification pertinente dans :

  • clipboardCopy / clipboardCopyAsync
  • la distribution des actions de DButton, y compris le parcours iOS
  • le shim legacy de DButton
  • le parcours du transformateur du menu de message
  • le parcours GET dans discourse/lib/ajax

J’ai Ă©galement Ă©crit une spĂ©cification systĂšme expĂ©rimentale qui met en pause la requĂȘte du message brut et vĂ©rifie si navigator.clipboard.write() a dĂ©marrĂ© avant la fin de la requĂȘte. Ce test rĂ©ussit si « Copier le message » est modifiĂ© pour utiliser clipboardCopyAsync, et Ă©choue avec l’implĂ©mentation actuelle.

Cependant, « Copier le message » fonctionne actuellement dans les navigateurs/appareils que j’ai testĂ©s, y compris Safari iOS PWA, de sorte que ce test semble imposer une contrainte d’implĂ©mentation plus stricte plutĂŽt que de dĂ©montrer une rĂ©gression visible par l’utilisateur Ă  l’heure actuelle.

Pour cette raison, je ne propose pas actuellement ce test ni la modification vers clipboardCopyAsync comme correctif. L’échec historique a peut-ĂȘtre dĂ©pendu du comportement du navigateur/WebKit plutĂŽt que d’une modification du composant « Copier le message » lui-mĂȘme.

1 « J'aime »

Pour faire suite Ă  cela, j’ai ouvert une petite PR qui modifie l’indication de succĂšs/vĂ©rification afin qu’elle ne s’affiche qu’aprĂšs que l’écriture dans le presse-papiers a rĂ©ussi, avec une spĂ©cification de systĂšme de rĂ©gression :

Le workflow GitHub Actions est actuellement en attente d’approbation par le mainteneur avant que les tĂąches CI puissent s’exĂ©cuter.

1 « J'aime »