`/enroll`: a stale approval's completion clears a newer link's code
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 86/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- typescript
- Bereich
- frontend
Rechercherichtung
Beginne in hosted/src/App.tsx, indem du approve, clearEnrollment und den Hashchange-Handler takeLink liest, und reproduziere dann die im Issue beschriebene Genehmigungs- und zweiten-Link-Sequenz. Füge den im Issue erwähnten App-Test hinzu, führe die relevanten App-Tests aus und verifiziere, dass das Auflösen der Genehmigung A den Enrollment-Code B angezeigt lässt, während die Genehmigung von A gemeldet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Code: approve and clearEnrollment in hosted/src/App.tsx; the hashchange handler takeLink in the same file.
Failure path: the user clicks Approve for code A, and approveEnrollment(A) is in flight. A second enrollment link opens in the same tab, and hashchange sets enrolling to code B. A's request resolves, and approve calls clearEnrollment(), which sets enrolling to null and replaces the URL. Code B is gone from memory and from the URL, and the notice reads "Approved A". The user has to open link B again. hosted.md -> "Burrow enrollment" says "A fragment change on /enroll takes the new code without reloading". Here a completion that is already in flight undoes that take.
Suggested fix: in approve, clear only if the enrollment still being shown is the one approved (if (enrollingRef.current?.code === code) clearEnrollment()). Otherwise leave B in place and show the A notice. Add an App test: start an approval, fire a hashchange to a new code, resolve the approval, then assert that the new code is still shown.
Found while trimming #904, which had parked this as a spec "Known gap".
🤖 Generated with Claude Code
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5
- Forks
- 1
- Ø Merge
- 10 Std. 50 Min.
- Gemergte PRs (30 T.)
- 494
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus diffplug/dormouse
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
diffplug/dormouse#1373 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 25/100
diffplug/dormouse#1235 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 48/100
diffplug/dormouse#1234 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement security
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
diffplug/dormouse#1166 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Security audit statusOffensecurity-audit-status
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 5/100
diffplug/dormouse#1137 · 47 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in diffplug/dormouse
Ähnliche Issues
-
type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
Maintainer antworten meist innerhalb von 1 Tag
-
0️⃣ phase/new
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 70/100
microsoft/playwright#43640 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100