File tree Expand file tree Collapse file tree 1 file changed +19
-15
lines changed
packages/react-start-client/src Expand file tree Collapse file tree 1 file changed +19
-15
lines changed Original file line number Diff line number Diff line change
1
+ import * as React from 'react'
1
2
import { isRedirect } from '@tanstack/router-core'
2
3
import { useRouter } from '@tanstack/react-router'
3
4
@@ -6,22 +7,25 @@ export function useServerFn<T extends (...deps: Array<any>) => Promise<any>>(
6
7
) : ( ...args : Parameters < T > ) => ReturnType < T > {
7
8
const router = useRouter ( )
8
9
9
- return ( async ( ...args : Array < any > ) => {
10
- try {
11
- const res = await serverFn ( ...args )
10
+ return React . useCallback (
11
+ async ( ...args : Array < any > ) => {
12
+ try {
13
+ const res = await serverFn ( ...args )
12
14
13
- if ( isRedirect ( res ) ) {
14
- throw res
15
- }
15
+ if ( isRedirect ( res ) ) {
16
+ throw res
17
+ }
16
18
17
- return res
18
- } catch ( err ) {
19
- if ( isRedirect ( err ) ) {
20
- err . options . _fromLocation = router . state . location
21
- return router . navigate ( router . resolveRedirect ( err ) . options )
22
- }
19
+ return res
20
+ } catch ( err ) {
21
+ if ( isRedirect ( err ) ) {
22
+ err . options . _fromLocation = router . state . location
23
+ return router . navigate ( router . resolveRedirect ( err ) . options )
24
+ }
23
25
24
- throw err
25
- }
26
- } ) as any
26
+ throw err
27
+ }
28
+ } ,
29
+ [ router , serverFn ] ,
30
+ ) as any
27
31
}
You can’t perform that action at this time.
0 commit comments