@axios-use/react
Advanced tools
Comparing version 6.1.0 to 6.2.0-alpha.1
@@ -15,3 +15,3 @@ import type { AxiosRequestConfig, AxiosResponse, AxiosError, Canceler } from "axios"; | ||
Payload<TRequest>, | ||
AxiosResponse<unknown, CData<TRequest>> | ||
AxiosResponse<Payload<TRequest>, CData<TRequest>> | ||
]>; | ||
@@ -18,0 +18,0 @@ }; |
@@ -17,3 +17,4 @@ import type { Canceler, AxiosResponse } from "axios"; | ||
}, | ||
RequestDispatcher<TRequest> | ||
RequestDispatcher<TRequest>, | ||
() => Canceler | undefined | ||
]; | ||
@@ -20,0 +21,0 @@ export declare type UseResourceOptions<T extends Request> = Pick<RequestContextConfig<Payload<T>>, "cache" | "cacheFilter" | "instance"> & RequestCallbackFn<T> & { |
@@ -158,4 +158,15 @@ var __assign = (this && this.__assign) || function () { | ||
[cacheKey, clear, createRequest, getMountedState]); | ||
var requestRefFn = useRefFn(request); | ||
var filterRefFn = useRefFn(options === null || options === void 0 ? void 0 : options.filter); | ||
var refresh = useCallback(function () { | ||
var _args = (requestParams || []); | ||
var _filter = typeof filterRefFn.current === "function" | ||
? filterRefFn.current.apply(filterRefFn, _args) : true; | ||
if (_filter) { | ||
return request.apply(void 0, _args); | ||
} | ||
return undefined; | ||
}, | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
[requestParams, request]); | ||
var refreshRefFn = useRefFn(refresh); | ||
useEffect(function () { | ||
@@ -165,6 +176,5 @@ // eslint-disable-next-line @typescript-eslint/no-empty-function | ||
if (requestParams) { | ||
var filter = typeof filterRefFn.current === "function" | ||
? filterRefFn.current.apply(filterRefFn, requestParams) : true; | ||
if (filter) { | ||
canceller = requestRefFn.current.apply(requestRefFn, requestParams); | ||
var _c = refreshRefFn.current(); | ||
if (_c) { | ||
canceller = _c; | ||
} | ||
@@ -180,5 +190,9 @@ } | ||
}; | ||
var result = [__assign(__assign({}, state), { cancel: cancel }), request]; | ||
var result = [ | ||
__assign(__assign({}, state), { cancel: cancel }), | ||
request, | ||
refresh, | ||
]; | ||
return result; | ||
}, [state, request, getMountedState, clear]); | ||
}, [state, request, refresh, getMountedState, clear]); | ||
} |
@@ -15,3 +15,3 @@ import type { AxiosRequestConfig, AxiosResponse, AxiosError, Canceler } from "axios"; | ||
Payload<TRequest>, | ||
AxiosResponse<unknown, CData<TRequest>> | ||
AxiosResponse<Payload<TRequest>, CData<TRequest>> | ||
]>; | ||
@@ -18,0 +18,0 @@ }; |
@@ -17,3 +17,4 @@ import type { Canceler, AxiosResponse } from "axios"; | ||
}, | ||
RequestDispatcher<TRequest> | ||
RequestDispatcher<TRequest>, | ||
() => Canceler | undefined | ||
]; | ||
@@ -20,0 +21,0 @@ export declare type UseResourceOptions<T extends Request> = Pick<RequestContextConfig<Payload<T>>, "cache" | "cacheFilter" | "instance"> & RequestCallbackFn<T> & { |
@@ -161,4 +161,15 @@ "use strict"; | ||
[cacheKey, clear, createRequest, getMountedState]); | ||
var requestRefFn = (0, utils_1.useRefFn)(request); | ||
var filterRefFn = (0, utils_1.useRefFn)(options === null || options === void 0 ? void 0 : options.filter); | ||
var refresh = (0, react_1.useCallback)(function () { | ||
var _args = (requestParams || []); | ||
var _filter = typeof filterRefFn.current === "function" | ||
? filterRefFn.current.apply(filterRefFn, _args) : true; | ||
if (_filter) { | ||
return request.apply(void 0, _args); | ||
} | ||
return undefined; | ||
}, | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
[requestParams, request]); | ||
var refreshRefFn = (0, utils_1.useRefFn)(refresh); | ||
(0, react_1.useEffect)(function () { | ||
@@ -168,6 +179,5 @@ // eslint-disable-next-line @typescript-eslint/no-empty-function | ||
if (requestParams) { | ||
var filter = typeof filterRefFn.current === "function" | ||
? filterRefFn.current.apply(filterRefFn, requestParams) : true; | ||
if (filter) { | ||
canceller = requestRefFn.current.apply(requestRefFn, requestParams); | ||
var _c = refreshRefFn.current(); | ||
if (_c) { | ||
canceller = _c; | ||
} | ||
@@ -183,6 +193,10 @@ } | ||
}; | ||
var result = [__assign(__assign({}, state), { cancel: cancel }), request]; | ||
var result = [ | ||
__assign(__assign({}, state), { cancel: cancel }), | ||
request, | ||
refresh, | ||
]; | ||
return result; | ||
}, [state, request, getMountedState, clear]); | ||
}, [state, request, refresh, getMountedState, clear]); | ||
} | ||
exports.useResource = useResource; |
{ | ||
"name": "@axios-use/react", | ||
"version": "6.1.0", | ||
"version": "6.2.0-alpha.1", | ||
"description": "A React hook plugin for Axios. Lightweight, cancelable and less change", | ||
@@ -5,0 +5,0 @@ "contributors": [ |
@@ -165,3 +165,3 @@ English | [简体中文](./README.zh-CN.md) | ||
// js | ||
const [{ data, error, isLoading }, fetch] = useResource((id) => ({ | ||
const [{ data, error, isLoading }, fetch, refresh] = useResource((id) => ({ | ||
url: `/user/${id}`, | ||
@@ -172,3 +172,3 @@ method: "GET", | ||
// tsx | ||
const [reqState, fetch] = useResource((id: string) => | ||
const [reqState, fetch, refresh] = useResource((id: string) => | ||
// response.data: Result. AxiosResponse<Result> | ||
@@ -194,3 +194,8 @@ request<Result>({ | ||
// `options.filter` will not be called | ||
type Fetch = (...args: Parameters<TRequest>) => Canceler; | ||
// 1. Same as `fetch`. But no parameters required. Inherit `useResource` parameters | ||
// 2. Will call `options.filter` | ||
type Refresh = () => Canceler | undefined; | ||
``` | ||
@@ -197,0 +202,0 @@ |
@@ -165,3 +165,3 @@ 简体中文 | [English](./README.md) | ||
// js | ||
const [{ data, error, isLoading }, fetch] = useResource((id) => ({ | ||
const [{ data, error, isLoading }, fetch, refresh] = useResource((id) => ({ | ||
url: `/user/${id}`, | ||
@@ -172,3 +172,3 @@ method: "GET", | ||
// tsx | ||
const [reqState, fetch] = useResource((id: string) => | ||
const [reqState, fetch, refresh] = useResource((id: string) => | ||
// response.data: Result. AxiosResponse<Result> | ||
@@ -194,3 +194,8 @@ request<Result>({ | ||
// 不会调用 `options.filter` 函数 | ||
type Fetch = (...args: Parameters<TRequest>) => Canceler; | ||
// 1. 与 `fetch` 函数类似, 但是没有传参, 保持使用 `useResource` 声明时传参 | ||
// 2. 会调用 `options.filter` 函数进行过滤操作 | ||
type Refresh = () => Canceler | undefined; | ||
``` | ||
@@ -197,0 +202,0 @@ |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
83640
1194
295
2