@@ -63,27 +63,35 @@ const invokeHooks = <T>(
63
63
*/
64
64
const resolveSubmitOptions = (
65
65
form : SanctumForm < any > ,
66
- options : FetchOptions ,
66
+ options : FetchOptions = { } as FetchOptions , // Ensures `options` defaults to FetchOptions type
67
67
) : FetchOptions => ( {
68
68
...options ,
69
69
async onRequest ( context ) {
70
70
form . processing = true ;
71
71
form . setErrors ( { } ) ;
72
- invokeHooks ( options . onRequest , context ) ;
72
+ if ( 'onRequest' in options && options . onRequest ) {
73
+ invokeHooks ( options . onRequest , context ) ;
74
+ }
73
75
} ,
74
76
async onRequestError ( context ) {
75
77
form . processing = false ;
76
- invokeHooks ( options . onRequestError , context ) ;
78
+ if ( 'onRequestError' in options && options . onRequestError ) {
79
+ invokeHooks ( options . onRequestError , context ) ;
80
+ }
77
81
} ,
78
82
async onResponse ( context ) {
79
83
form . processing = false ;
80
- invokeHooks ( options . onResponse , context ) ;
84
+ if ( 'onResponse' in options && options . onResponse ) {
85
+ invokeHooks ( options . onResponse , context ) ;
86
+ }
81
87
} ,
82
88
async onResponseError ( context ) {
83
89
if ( context . response . status === 422 ) {
84
90
form . setErrors ( context . response . _data . errors ) ;
85
91
}
86
- invokeHooks ( options . onResponseError , context ) ;
92
+ if ( 'onResponseError' in options && options . onResponseError ) {
93
+ invokeHooks ( options . onResponseError , context ) ;
94
+ }
87
95
} ,
88
96
} ) ;
89
97
@@ -130,7 +138,7 @@ export const useSanctumForm = <Data extends Record<string, unknown>>(
130
138
} ,
131
139
processing : false ,
132
140
async submit < T = any , R extends ResponseType = 'json' > (
133
- options : FetchOptions < ResponseType > = { } ,
141
+ options ? : FetchOptions < ResponseType > ,
134
142
) : Promise < MappedResponseType < R , T > > {
135
143
const methodType = resolveMethod ( method ) ;
136
144
let preparedData : Data | FormData = form . data ( ) ;
@@ -147,7 +155,7 @@ export const useSanctumForm = <Data extends Record<string, unknown>>(
147
155
return useSanctumFetch ( resolveUrl ( url ) , {
148
156
method : methodType ,
149
157
body : preparedData ,
150
- ...resolveSubmitOptions ( form , options as FetchOptions < ResponseType > ) ,
158
+ ...resolveSubmitOptions ( form , options ) ,
151
159
} ) as Promise < MappedResponseType < R , T > > ;
152
160
} ,
153
161
errors : { } ,
0 commit comments