@@ -15,19 +15,21 @@ const DEFAULT_RESULT = {
15
15
fetchError : undefined ,
16
16
serverError : undefined ,
17
17
validationErrors : undefined ,
18
- } satisfies HookResult < any , any , any , any > ;
18
+ } satisfies HookResult < any , any , any , any , any , any > ;
19
19
20
20
const getActionStatus = <
21
21
const ServerError ,
22
22
const S extends Schema ,
23
- const BAS extends Schema [ ] ,
23
+ const BAS extends readonly Schema [ ] ,
24
+ const FVE ,
25
+ const FBAVE ,
24
26
const Data ,
25
27
> ( {
26
28
isExecuting,
27
29
result,
28
30
} : {
29
31
isExecuting : boolean ;
30
- result : HookResult < ServerError , S , BAS , Data > ;
32
+ result : HookResult < ServerError , S , BAS , FVE , FBAVE , Data > ;
31
33
} ) : HookActionStatus => {
32
34
if ( isExecuting ) {
33
35
return "executing" ;
@@ -48,7 +50,9 @@ const getActionStatus = <
48
50
const useActionCallbacks = <
49
51
const ServerError ,
50
52
const S extends Schema ,
51
- const BAS extends Schema [ ] ,
53
+ const BAS extends readonly Schema [ ] ,
54
+ const FVE ,
55
+ const FBAVE ,
52
56
const Data ,
53
57
> ( {
54
58
result,
@@ -57,11 +61,11 @@ const useActionCallbacks = <
57
61
reset,
58
62
cb,
59
63
} : {
60
- result : HookResult < ServerError , S , BAS , Data > ;
64
+ result : HookResult < ServerError , S , BAS , FVE , FBAVE , Data > ;
61
65
input : InferIn < S > ;
62
66
status : HookActionStatus ;
63
67
reset : ( ) => void ;
64
- cb ?: HookCallbacks < ServerError , S , BAS , Data > ;
68
+ cb ?: HookCallbacks < ServerError , S , BAS , FVE , FBAVE , Data > ;
65
69
} ) => {
66
70
const onExecuteRef = React . useRef ( cb ?. onExecute ) ;
67
71
const onSuccessRef = React . useRef ( cb ?. onSuccess ) ;
@@ -107,18 +111,21 @@ const useActionCallbacks = <
107
111
export const useAction = <
108
112
const ServerError ,
109
113
const S extends Schema ,
110
- const BAS extends Schema [ ] ,
114
+ const BAS extends readonly Schema [ ] ,
115
+ const FVE ,
116
+ const FBAVE ,
111
117
const Data ,
112
118
> (
113
- safeActionFn : HookSafeActionFn < ServerError , S , BAS , Data > ,
114
- callbacks ?: HookCallbacks < ServerError , S , BAS , Data >
119
+ safeActionFn : HookSafeActionFn < ServerError , S , BAS , FVE , FBAVE , Data > ,
120
+ callbacks ?: HookCallbacks < ServerError , S , BAS , FVE , FBAVE , Data >
115
121
) => {
116
122
const [ , startTransition ] = React . useTransition ( ) ;
117
- const [ result , setResult ] = React . useState < HookResult < ServerError , S , BAS , Data > > ( DEFAULT_RESULT ) ;
123
+ const [ result , setResult ] =
124
+ React . useState < HookResult < ServerError , S , BAS , FVE , FBAVE , Data > > ( DEFAULT_RESULT ) ;
118
125
const [ input , setInput ] = React . useState < InferIn < S > > ( ) ;
119
126
const [ isExecuting , setIsExecuting ] = React . useState ( false ) ;
120
127
121
- const status = getActionStatus < ServerError , S , BAS , Data > ( { isExecuting, result } ) ;
128
+ const status = getActionStatus < ServerError , S , BAS , FVE , FBAVE , Data > ( { isExecuting, result } ) ;
122
129
123
130
const execute = React . useCallback (
124
131
( input : InferIn < S > ) => {
@@ -171,16 +178,19 @@ export const useAction = <
171
178
export const useOptimisticAction = <
172
179
const ServerError ,
173
180
const S extends Schema ,
174
- const BAS extends Schema [ ] ,
181
+ const BAS extends readonly Schema [ ] ,
182
+ const FVE ,
183
+ const FBAVE ,
175
184
const Data ,
176
185
> (
177
- safeActionFn : HookSafeActionFn < ServerError , S , BAS , Data > ,
186
+ safeActionFn : HookSafeActionFn < ServerError , S , BAS , FVE , FBAVE , Data > ,
178
187
initialOptimisticData : Data ,
179
188
reducer : ( state : Data , input : InferIn < S > ) => Data ,
180
- callbacks ?: HookCallbacks < ServerError , S , BAS , Data >
189
+ callbacks ?: HookCallbacks < ServerError , S , BAS , FVE , FBAVE , Data >
181
190
) => {
182
191
const [ , startTransition ] = React . useTransition ( ) ;
183
- const [ result , setResult ] = React . useState < HookResult < ServerError , S , BAS , Data > > ( DEFAULT_RESULT ) ;
192
+ const [ result , setResult ] =
193
+ React . useState < HookResult < ServerError , S , BAS , FVE , FBAVE , Data > > ( DEFAULT_RESULT ) ;
184
194
const [ input , setInput ] = React . useState < InferIn < S > > ( ) ;
185
195
const [ isExecuting , setIsExecuting ] = React . useState ( false ) ;
186
196
@@ -189,7 +199,7 @@ export const useOptimisticAction = <
189
199
reducer
190
200
) ;
191
201
192
- const status = getActionStatus < ServerError , S , BAS , Data > ( { isExecuting, result } ) ;
202
+ const status = getActionStatus < ServerError , S , BAS , FVE , FBAVE , Data > ( { isExecuting, result } ) ;
193
203
194
204
const execute = React . useCallback (
195
205
( input : InferIn < S > ) => {
0 commit comments