diff --git a/src/core/plugins/useRefreshDepsPlugin.ts b/src/core/plugins/useRefreshDepsPlugin.ts index 17bd244..a0c9f0d 100644 --- a/src/core/plugins/useRefreshDepsPlugin.ts +++ b/src/core/plugins/useRefreshDepsPlugin.ts @@ -13,9 +13,13 @@ export default definePlugin( const deps = isArray(refreshDeps) ? refreshDeps : [refreshDeps]; // watch refreshDeps - watch(deps, () => { + watch(deps, (values, oldValues) => { if (refreshDepsAction) { - refreshDepsAction(); + refreshDepsAction({ + values, + oldValues, + context: queryInstance.context, + }); } else { !manual && queryInstance.context.refresh(); } diff --git a/src/core/types.ts b/src/core/types.ts index be4acf5..0009d64 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -71,13 +71,19 @@ export type BaseOptions = { setCache?: (cacheKey: string, cacheData: CacheData) => void; }; +export type RefreshDepsActionParams = { + values: any[]; + oldValues: any[]; + context: FunctionContext; +}; + export type Options = BaseOptions & { defaultParams?: P; ready?: Ref | (() => boolean); initialData?: R; refreshDeps?: WatchSource | WatchSource[]; cacheKey?: string | ((params?: P) => string); - refreshDepsAction?: () => void; + refreshDepsAction?: (params: RefreshDepsActionParams) => void; onSuccess?: (data: R, params: P) => void; onError?: (error: Error, params: P) => void; onBefore?: (params: P) => void; diff --git a/src/useLoadMore.ts b/src/useLoadMore.ts index 7fe1fd3..f316f97 100644 --- a/src/useLoadMore.ts +++ b/src/useLoadMore.ts @@ -87,9 +87,9 @@ function useLoadMore( { ...restOptions, defaultParams: [], - refreshDepsAction: () => { + refreshDepsAction: params => { if (restOptions?.refreshDepsAction) { - restOptions.refreshDepsAction(); + restOptions.refreshDepsAction(params); } else { refresh(); }