@@ -4,7 +4,12 @@ import type { RouterContext } from "../types.js";
44import { actions } from "./action.js" ;
55import { mockBase } from "../utils.js" ;
66
7- export function setupNativeEvents ( preload = true , explicitLinks = false , actionBase = "/_server" , transformUrl ?: ( url : string ) => string ) {
7+ export function setupNativeEvents (
8+ preload = true ,
9+ explicitLinks = false ,
10+ actionBase = "/_server" ,
11+ transformUrl ?: ( url : string ) => string
12+ ) {
813 return ( router : RouterContext ) => {
914 const basePath = router . base . path ( ) ;
1015 const navigateFromRoute = router . navigatorFactory ( router . base ) ;
@@ -123,13 +128,13 @@ export function setupNativeEvents(preload = true, explicitLinks = false, actionB
123128 const handler = actions . get ( actionRef ) ;
124129 if ( handler ) {
125130 evt . preventDefault ( ) ;
126- const data = new FormData ( evt . target as HTMLFormElement ) ;
127- if ( evt . submitter && ( evt . submitter as HTMLButtonElement | HTMLInputElement ) . name )
128- data . append (
129- ( evt . submitter as HTMLButtonElement | HTMLInputElement ) . name ,
130- ( evt . submitter as HTMLButtonElement | HTMLInputElement ) . value
131- ) ;
132- handler . call ( { r : router , f : evt . target } , data ) ;
131+ const data = new FormData ( evt . target as HTMLFormElement , evt . submitter ) ;
132+ handler . call (
133+ { r : router , f : evt . target } ,
134+ ( evt . target as HTMLFormElement ) . enctype === "multipart/form-data"
135+ ? data
136+ : new URLSearchParams ( data as any )
137+ ) ;
133138 }
134139 }
135140
0 commit comments