diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 8fa67a99a..af5ac6aca 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -180,6 +180,12 @@ export type LocationVisit = { preserveScroll: boolean } +export type CancelToken = { + cancel: VoidFunction +} + +export type CancelTokenCallback = (cancelToken: CancelToken) => void + export type Visit = { method: Method data: T @@ -330,7 +336,7 @@ export type GlobalEventCallback, T extend export type InternalEvent = 'missingHistoryItem' | 'loadDeferredProps' export type VisitCallbacks = { - onCancelToken: { ({ cancel }: { cancel: VoidFunction }): void } + onCancelToken: CancelTokenCallback onBefore: GlobalEventCallback<'before', T> onBeforeUpdate: GlobalEventCallback<'beforeUpdate', T> onStart: GlobalEventCallback<'start', T> @@ -420,9 +426,8 @@ export interface LinkComponentBaseProps | 'queryStringArrayFormat' | 'async' > & - Omit & { + VisitCallbacks & { href: string | UrlMethodPair - onCancelToken: (cancelToken: import('axios').CancelTokenSource) => void prefetch: boolean | LinkPrefetchOption | LinkPrefetchOption[] cacheFor: CacheForOption | CacheForOption[] cacheTags: string | string[] diff --git a/packages/react/src/useForm.ts b/packages/react/src/useForm.ts index 090bdc1a1..f40b26beb 100644 --- a/packages/react/src/useForm.ts +++ b/packages/react/src/useForm.ts @@ -1,4 +1,5 @@ import { + CancelToken, ErrorValue, FormDataErrors, FormDataKeys, @@ -70,7 +71,7 @@ export default function useForm>( const [defaults, setDefaults] = useState( (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm), ) - const cancelToken = useRef(null) + const cancelToken = useRef(null) const recentlySuccessfulTimeoutId = useRef(null) const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults) const [errors, setErrors] = rememberKey diff --git a/packages/svelte/src/link.ts b/packages/svelte/src/link.ts index d3ac017a4..2cf0b5598 100644 --- a/packages/svelte/src/link.ts +++ b/packages/svelte/src/link.ts @@ -5,13 +5,13 @@ import { shouldIntercept, shouldNavigate, type CacheForOption, + type CancelToken, type GlobalEventsMap, type LinkComponentBaseProps, type LinkPrefetchOption, type Method, type VisitOptions, } from '@inertiajs/core' -import type { CancelTokenSource } from 'axios' import type { ActionReturn } from 'svelte/action' type ActionEventHandlers = { @@ -40,8 +40,8 @@ type ActionAttributes = { event: CustomEvent, ) => void } & { - 'on:cancel-token'?: (event: CustomEvent) => void - oncanceltoken?: (event: CustomEvent) => void + 'on:cancel-token'?: (event: CustomEvent) => void + oncanceltoken?: (event: CustomEvent) => void } function link( diff --git a/packages/svelte/src/useForm.ts b/packages/svelte/src/useForm.ts index 2d034e3ce..fe1c15586 100644 --- a/packages/svelte/src/useForm.ts +++ b/packages/svelte/src/useForm.ts @@ -1,5 +1,6 @@ import type { ActiveVisit, + CancelToken, Errors, ErrorValue, FormDataErrors, @@ -70,7 +71,7 @@ export default function useForm>( ? (router.restore(rememberKey) as { data: TForm; errors: Record, string> } | null) : null let defaults = cloneDeep(data) - let cancelToken: { cancel: () => void } | null = null + let cancelToken: CancelToken | null = null let recentlySuccessfulTimeoutId: ReturnType | null = null let transform = (data: TForm) => data as object // Track if defaults was called manually during onSuccess to avoid @@ -169,7 +170,7 @@ export default function useForm>( const _options: Omit = { ...options, - onCancelToken: (token: { cancel: () => void }) => { + onCancelToken: (token: CancelToken) => { cancelToken = token if (options.onCancelToken) { diff --git a/packages/vue3/src/link.ts b/packages/vue3/src/link.ts index 6fc25d21b..66b69be7a 100755 --- a/packages/vue3/src/link.ts +++ b/packages/vue3/src/link.ts @@ -1,6 +1,7 @@ import { ActiveVisit, CacheForOption, + CancelTokenCallback, GlobalEventCallback, isUrlMethodPair, LinkComponentBaseProps, @@ -115,7 +116,7 @@ const Link: InertiaLink = defineComponent({ default: noop, }, onCancelToken: { - type: Function as PropType<(cancelToken: import('axios').CancelTokenSource) => void>, + type: Function as PropType, default: noop, }, onPrefetching: { diff --git a/packages/vue3/src/useForm.ts b/packages/vue3/src/useForm.ts index 675208af6..480e298b4 100644 --- a/packages/vue3/src/useForm.ts +++ b/packages/vue3/src/useForm.ts @@ -1,4 +1,5 @@ import { + CancelToken, ErrorValue, FormDataErrors, FormDataKeys, @@ -59,7 +60,7 @@ export default function useForm>( ? (router.restore(rememberKey) as { data: TForm; errors: Record, string> }) : null let defaults = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(data) - let cancelToken = null + let cancelToken: CancelToken | null = null let recentlySuccessfulTimeoutId = null let transform = (data) => data