diff --git a/e2e/react-start/basic-auth/src/hooks/useMutation.ts b/e2e/react-start/basic-auth/src/hooks/useMutation.ts index 1ff7a4653bd..dbbf994c98d 100644 --- a/e2e/react-start/basic-auth/src/hooks/useMutation.ts +++ b/e2e/react-start/basic-auth/src/hooks/useMutation.ts @@ -1,7 +1,7 @@ import * as React from 'react' export function useMutation(opts: { - fn: (variables: TVariables) => Promise + fn: (variables: TVariables) => Promise onSuccess?: (ctx: { data: TData }) => void | Promise }) { const [submittedAt, setSubmittedAt] = React.useState() @@ -20,11 +20,13 @@ export function useMutation(opts: { // try { const data = await opts.fn(variables) - await opts.onSuccess?.({ data }) - setStatus('success') - setError(undefined) - setData(data) - return data + if (data) { + await opts.onSuccess?.({ data }) + setStatus('success') + setError(undefined) + setData(data) + return data + } } catch (err: any) { setStatus('error') setError(err) diff --git a/examples/react/start-supabase-basic/src/hooks/useMutation.ts b/examples/react/start-supabase-basic/src/hooks/useMutation.ts index afe59694d43..f5f94e35d02 100644 --- a/examples/react/start-supabase-basic/src/hooks/useMutation.ts +++ b/examples/react/start-supabase-basic/src/hooks/useMutation.ts @@ -1,7 +1,7 @@ import * as React from 'react' export function useMutation(opts: { - fn: (variables: TVariables) => Promise + fn: (variables: TVariables) => Promise onSuccess?: (ctx: { data: TData }) => void | Promise }) { const [submittedAt, setSubmittedAt] = React.useState() @@ -20,11 +20,13 @@ export function useMutation(opts: { // try { const data = await opts.fn(variables) - await opts.onSuccess?.({ data }) - setStatus('success') - setError(undefined) - setData(data) - return data + if (data) { + await opts.onSuccess?.({ data }) + setStatus('success') + setError(undefined) + setData(data) + return data + } } catch (err) { setStatus('error') setError(err as TError) diff --git a/packages/react-start/src/useServerFn.ts b/packages/react-start/src/useServerFn.ts index 67a09a4358c..fd4f9524dd5 100644 --- a/packages/react-start/src/useServerFn.ts +++ b/packages/react-start/src/useServerFn.ts @@ -3,7 +3,7 @@ import { isRedirect, useRouter } from '@tanstack/react-router' export function useServerFn) => Promise>( serverFn: T, -): (...args: Parameters) => ReturnType { +): (...args: Parameters) => ReturnType | Promise { const router = useRouter() return React.useCallback( @@ -26,5 +26,5 @@ export function useServerFn) => Promise>( } }, [router, serverFn], - ) as any + ) }