From 3e9240479709078cbf7321b09f841f228f4d2ea0 Mon Sep 17 00:00:00 2001 From: Xingwang Liao Date: Thu, 6 Jun 2024 12:00:45 +0000 Subject: [PATCH 1/2] feat: expose watch values and context to refreshDepsAction --- src/core/plugins/useRefreshDepsPlugin.ts | 4 ++-- src/core/types.ts | 8 +++++++- src/useLoadMore.ts | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/core/plugins/useRefreshDepsPlugin.ts b/src/core/plugins/useRefreshDepsPlugin.ts index 17bd244..63ca52c 100644 --- a/src/core/plugins/useRefreshDepsPlugin.ts +++ b/src/core/plugins/useRefreshDepsPlugin.ts @@ -13,9 +13,9 @@ export default definePlugin( const deps = isArray(refreshDeps) ? refreshDeps : [refreshDeps]; // watch refreshDeps - watch(deps, () => { + watch(deps, (value, oldValue) => { if (refreshDepsAction) { - refreshDepsAction(); + refreshDepsAction({ value, oldValue, context: queryInstance.context }); } else { !manual && queryInstance.context.refresh(); } diff --git a/src/core/types.ts b/src/core/types.ts index be4acf5..f86b14e 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 = { + value: any[]; + oldValue: 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(); } From 531c55d9d6a7912e107791d48cc3f50247c535cd Mon Sep 17 00:00:00 2001 From: Xingwang Liao Date: Thu, 6 Jun 2024 12:56:31 +0000 Subject: [PATCH 2/2] feat: value -> values --- src/core/plugins/useRefreshDepsPlugin.ts | 8 ++++++-- src/core/types.ts | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/plugins/useRefreshDepsPlugin.ts b/src/core/plugins/useRefreshDepsPlugin.ts index 63ca52c..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, (value, oldValue) => { + watch(deps, (values, oldValues) => { if (refreshDepsAction) { - refreshDepsAction({ value, oldValue, context: queryInstance.context }); + refreshDepsAction({ + values, + oldValues, + context: queryInstance.context, + }); } else { !manual && queryInstance.context.refresh(); } diff --git a/src/core/types.ts b/src/core/types.ts index f86b14e..0009d64 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -72,8 +72,8 @@ export type BaseOptions = { }; export type RefreshDepsActionParams = { - value: any[]; - oldValue: any[]; + values: any[]; + oldValues: any[]; context: FunctionContext; };