FormData + FormDataEvent + requestSubmit — React 19 <form action={fn}> #31
Labels
No labels
bug
docs
feature
housekeeping
html-spec
performance
react-compat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
glow-all/true-headless-browser#31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
React 19
<form action={fn}>und<button formAction={fn}>nutzen die neue form action API:FormData-Objekt aus den Formularfeldernformdata-Event (FormDataEvent) auf dem FormularrequestSubmit()stattsubmit()wird verwendet, damit Submit-Events + FormData-Events dispatched werdenUnsere Engine:
FormDatagibt es nichtFormDataEventgibt es nichtHTMLFormElement.requestSubmit()gibt es nichtform.submit()dispatht kein submit-Event (muss es laut Spec auch nicht)Option A: Neuimplementierung (Empfohlen)
Alle drei Komponenten als eigenständige Module implementieren, mit TDD.
Modul 1: FormData (
src/forms/form-data.ts)Wichtig: FormData muss sowohl String- als auch Blob-Werte unterstützen (File-Upload).
Modul 2: FormDataEvent (
src/forms/form-data-event.ts)Modul 3: requestSubmit + submit-event-plumbing (
src/forms/form-submission.ts)Option B: FormData aus dem FormData-Standard-Extraktor
Es gibt ein
formdataPolyfill auf npm — aber das deckt nurformdataEvent ab, nicht die FormData-Klasse selbst.Nicht empfohlen: FormData selbst muss alle Edge Cases der multipart-Enkodierung beherrschen.
Akzeptanzkriterien
FormData-Instanz erstellbar (leer und aus<form>-Element)append/delete/get/getAll/has/setfunktionieren spec-konformFormDataEventdispatcht mit formData-Propertyform.requestSubmit(submitter?)→ dispatcht submit → sammelt FormData → dispatcht formdata → ruft action-Funktionform.requestSubmit()mit cancelable submit → preventDefault() bricht abform.requestSubmit()ohne action-Funktion → kein CrashBetroffene Dateien
src/forms/form-data.tssrc/forms/form-data-event.tssrc/forms/form-submission.tssrc/runtime-isolation.tsallowedGlobalsregistrierentests/unit/form-data.test.tstests/unit/form-submission.test.tstests/integration/react-form.test.tsTests (FormData)
Cross-Referenzen