@@ -15,10 +15,10 @@ import cloneDeep from 'lodash/cloneDeep'
15
15
import isEqual from 'lodash/isEqual'
16
16
import { writable , type Writable } from 'svelte/store'
17
17
18
- type FormDataType = Record < string , FormDataConvertible >
18
+ type FormDataType < T > = Record < keyof T , FormDataConvertible >
19
19
type FormOptions = Omit < VisitOptions , 'data' >
20
20
21
- export interface InertiaFormProps < TForm extends FormDataType > {
21
+ export interface InertiaFormProps < TForm extends FormDataType < TForm > > {
22
22
isDirty : boolean
23
23
errors : Partial < Record < keyof TForm , string > >
24
24
hasErrors : boolean
@@ -46,14 +46,14 @@ export interface InertiaFormProps<TForm extends FormDataType> {
46
46
cancel ( ) : void
47
47
}
48
48
49
- export type InertiaForm < TForm extends FormDataType > = InertiaFormProps < TForm > & TForm
49
+ export type InertiaForm < TForm extends FormDataType < TForm > > = InertiaFormProps < TForm > & TForm
50
50
51
- export default function useForm < TForm extends FormDataType > ( data : TForm | ( ( ) => TForm ) ) : Writable < InertiaForm < TForm > >
52
- export default function useForm < TForm extends FormDataType > (
51
+ export default function useForm < TForm extends FormDataType < TForm > > ( data : TForm | ( ( ) => TForm ) ) : Writable < InertiaForm < TForm > >
52
+ export default function useForm < TForm extends FormDataType < TForm > > (
53
53
rememberKey : string ,
54
54
data : TForm | ( ( ) => TForm ) ,
55
55
) : Writable < InertiaForm < TForm > >
56
- export default function useForm < TForm extends FormDataType > (
56
+ export default function useForm < TForm extends FormDataType < TForm > > (
57
57
rememberKeyOrData : string | TForm | ( ( ) => TForm ) ,
58
58
maybeData ?: TForm | ( ( ) => TForm ) ,
59
59
) : Writable < InertiaForm < TForm > > {
@@ -86,7 +86,7 @@ export default function useForm<TForm extends FormDataType>(
86
86
return Object . keys ( data ) . reduce ( ( carry , key ) => {
87
87
carry [ key ] = this [ key ]
88
88
return carry
89
- } , { } as FormDataType ) as TForm
89
+ } , { } as FormDataType < TForm > ) as TForm
90
90
} ,
91
91
transform ( callback ) {
92
92
transform = callback
@@ -114,7 +114,7 @@ export default function useForm<TForm extends FormDataType>(
114
114
. reduce ( ( carry , key ) => {
115
115
carry [ key ] = clonedData [ key ]
116
116
return carry
117
- } , { } as FormDataType ) as TForm ,
117
+ } , { } as FormDataType < TForm > ) as TForm ,
118
118
)
119
119
}
120
120
0 commit comments