📄 Beitrag kopieren-Komponente

Danke, dass Sie das identifiziert haben, @Moin. Ich habe eine Korrektur vorgenommen:

6 „GefĂ€llt mir“

Ich erhalte jedes Mal diese Fehlermeldung, wenn ich auf die Kopieren-SchaltflÀche klicke:

1 „GefĂ€llt mir“

Siehst du irgendwelche Fehler in der Browserkonsole?

Ich habe dieses Problem im anderen Thema erwÀhnt.

1 „GefĂ€llt mir“

Mir ist ein Fehler auf einer Seite aufgefallen, die die Komponente anonym verwendet:

Ich habe einen PR erstellt, um das zu beheben:

4 „GefĂ€llt mir“

Der PR ist jetzt zusammengefĂŒhrt; danke, Keegan!

3 „GefĂ€llt mir“

erhalten Benutzer dieser Komponente in letzter Zeit hÀufiger diesen Fehler

Habe es gerade installiert, hier ist eine Idee:

Klicken Sie auf die Kopieren-SchaltflĂ€che bei mehreren BeitrĂ€gen, um Ihren Zwischenspeicher „aufzubauen“. Auf diese Weise können Sie schnell einen gesamten Abschnitt eines Threads selektiv kopieren.

Angenommen, es gibt fĂŒnf BeitrĂ€ge:

Beitrag A
Beitrag B
Beitrag C
Beitrag D
Beitrag E

Sie kopieren D, dann B, dann E. Was sich in Ihrem Zwischenspeicher befindet, ist tatsÀchlich:

B
D
E

Der Zwischenspeicher wird also nach seiner Chronologie im GesprÀch angeordnet, nicht nach der Reihenfolge, in der Sie ihn kopieren.

Ich hatte hier einen Fehler, und da es ein clientseitiger JS-Fehler ist, kann ich ihn in \logs nicht finden. Meine Discourse-Version ist 2026.7.0-latest +188

Ich habe das Problem weiter untersucht, und zwar sowohl anhand der exakten Discourse-Revision, bei der ich das Problem ursprĂŒnglich beobachtet habe, als auch anhand des aktuellen main-Branches.

Bei einem rekonstruierten historischen Juli-Setup konnte ich einen clipbrettbezogenen Fehler reproduzieren: „Beitrag kopieren“ konnte die Erfolgsmeldung bzw. das HĂ€kchen anzeigen, obwohl der Inhalt der Zwischenablage tatsĂ€chlich nicht ersetzt wurde. Ich kann nicht bestĂ€tigen, dass dies derselbe zugrunde liegende Fehler war wie der in meinem ursprĂŒnglichen Juli-Screenshot gezeigte Theme-/Komponentenfehler.

Allerdings funktioniert die aktuelle Implementierung von „Beitrag kopieren“ auf meiner aktuellen Produktionsinstanz einwandfrei, einschließlich in einer iOS-Safari-PWA.

Ich habe den relevanten Code zwischen der Juli-Revision von Discourse und dem aktuellen main verglichen. Die Implementierung des „Beitrag kopieren“-Clipboards selbst ist nicht geĂ€ndert worden, und ich konnte keine relevanten Änderungen in folgenden Bereichen feststellen:

  • clipboardCopy / clipboardCopyAsync
  • der Aktions-Dispatch-Logik von DButton, einschließlich des iOS-Pfads
  • dem Legacy-DButton-Shim
  • dem Transformer-Pfad des BeitragsmenĂŒs
  • dem GET-Pfad in discourse/lib/ajax

Außerdem habe ich eine experimentelle System-Spezifikation geschrieben, die die Raw-Post-Anfrage pausiert und prĂŒft, ob navigator.clipboard.write() vor dem Abschluss der Anfrage gestartet wurde. Dieser Test besteht, wenn „Beitrag kopieren“ so geĂ€ndert wird, dass clipboardCopyAsync verwendet wird, und schlĂ€gt bei der aktuellen Implementierung fehl.

Da das aktuelle „Beitrag kopieren“ jedoch in den von mir getesteten Browsern und GerĂ€ten funktioniert, einschließlich iOS-Safari-PWA, scheint dieser Test eher eine strengere ImplementierungsbeschrĂ€nkung durchzusetzen, als eine aktuelle, nutzerseitig sichtbare Regression zu belegen.

Aus diesem Grund schlage ich diesen Test und die Änderung zu clipboardCopyAsync derzeit nicht als Lösung vor. Der historische Fehler mag von dem Verhalten des Browsers bzw. von WebKit abgehangen haben, anstatt auf einer Änderung in der „Beitrag kopieren“-Komponente selbst zu beruhen.

1 „GefĂ€llt mir“

Im Anschluss daran habe ich einen kleinen PR eröffnet, der die Erfolgs-/PrĂŒfanzeige so Ă€ndert, dass sie erst nach erfolgreichem Abschluss des Schreibvorgangs in die Zwischenablage angezeigt wird – inklusive einer Regression-System-Spezifikation:

Der GitHub-Actions-Workflow wartet derzeit auf die Freigabe durch die Maintainer, bevor die CI-Jobs ausgefĂŒhrt werden können.

1 „GefĂ€llt mir“