@aiszlab/relax 2.1.3-beta.4 → 2.1.3-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,6 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
5
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
6
  var react = require('react');
7
7
  var useEvent = require('./use-event.cjs');
8
- var useMounted = require('./use-mounted.cjs');
9
8
  var useDebounceCallback = require('./use-debounce-callback.cjs');
10
9
 
11
10
  /**
@@ -23,7 +22,8 @@ var useRequest = function useRequest(request) {
23
22
  thenCallback = _ref.then,
24
23
  catchCallback = _ref["catch"],
25
24
  finallyCallback = _ref["finally"],
26
- debounceWait = _ref.debounceWait;
25
+ debounceWait = _ref.debounceWait,
26
+ deps = _ref.deps;
27
27
  var _useState = react.useState(null),
28
28
  _useState2 = _slicedToArray(_useState, 2),
29
29
  data = _useState2[0],
@@ -77,14 +77,15 @@ var useRequest = function useRequest(request) {
77
77
  }
78
78
  return Promise.resolve(debounced.next.apply(debounced, arguments));
79
79
  });
80
- useMounted.useMounted(function () {
81
- if (isMountedRef.current) return;
82
- if (!auto) return;
83
- isMountedRef.current = true;
84
- // auto-run always fires immediately — debounce only applies to
85
- // manual run() calls
80
+ react.useEffect(function () {
81
+ if (!isMountedRef.current) {
82
+ isMountedRef.current = true;
83
+ if (!auto) return;
84
+ _execute();
85
+ return;
86
+ }
86
87
  _execute();
87
- });
88
+ }, deps !== null && deps !== void 0 ? deps : []);
88
89
  return {
89
90
  data: data,
90
91
  error: error,
@@ -1,3 +1,4 @@
1
+ import { type DependencyList } from "react";
1
2
  type UsingRequest<T> = {
2
3
  /**
3
4
  * auto request when component mounts
@@ -24,6 +25,13 @@ type UsingRequest<T> = {
24
25
  * 会被合并,在时间窗口内仅执行最后一次调用。
25
26
  */
26
27
  debounceWait?: number;
28
+ /**
29
+ * dependency list. when any value in this array changes (after initial
30
+ * mount), the request is automatically re-executed.
31
+ *
32
+ * @zh 依赖项列表。数组中的任意值发生变化时(首次挂载后),自动重新请求数据。
33
+ */
34
+ deps?: DependencyList;
27
35
  };
28
36
  type UsedRequest<T> = {
29
37
  /**
@@ -53,5 +61,5 @@ type UsedRequest<T> = {
53
61
  *
54
62
  * supports debounce via `debounceWait` option which accepts dynamic updates.
55
63
  */
56
- export declare const useRequest: <T>(request: (...args: any[]) => Promise<T>, { auto, then: thenCallback, catch: catchCallback, finally: finallyCallback, debounceWait, }?: UsingRequest<T>) => UsedRequest<T>;
64
+ export declare const useRequest: <T>(request: (...args: any[]) => Promise<T>, { auto, then: thenCallback, catch: catchCallback, finally: finallyCallback, debounceWait, deps, }?: UsingRequest<T>) => UsedRequest<T>;
57
65
  export {};
@@ -1,9 +1,8 @@
1
1
  import _regenerator from '@babel/runtime/helpers/regenerator';
2
2
  import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
3
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
- import { useState, useRef } from 'react';
4
+ import { useState, useRef, useEffect } from 'react';
5
5
  import { useEvent } from './use-event.mjs';
6
- import { useMounted } from './use-mounted.mjs';
7
6
  import { useDebounceCallback } from './use-debounce-callback.mjs';
8
7
 
9
8
  /**
@@ -21,7 +20,8 @@ var useRequest = function useRequest(request) {
21
20
  thenCallback = _ref.then,
22
21
  catchCallback = _ref["catch"],
23
22
  finallyCallback = _ref["finally"],
24
- debounceWait = _ref.debounceWait;
23
+ debounceWait = _ref.debounceWait,
24
+ deps = _ref.deps;
25
25
  var _useState = useState(null),
26
26
  _useState2 = _slicedToArray(_useState, 2),
27
27
  data = _useState2[0],
@@ -75,14 +75,15 @@ var useRequest = function useRequest(request) {
75
75
  }
76
76
  return Promise.resolve(debounced.next.apply(debounced, arguments));
77
77
  });
78
- useMounted(function () {
79
- if (isMountedRef.current) return;
80
- if (!auto) return;
81
- isMountedRef.current = true;
82
- // auto-run always fires immediately — debounce only applies to
83
- // manual run() calls
78
+ useEffect(function () {
79
+ if (!isMountedRef.current) {
80
+ isMountedRef.current = true;
81
+ if (!auto) return;
82
+ _execute();
83
+ return;
84
+ }
84
85
  _execute();
85
- });
86
+ }, deps !== null && deps !== void 0 ? deps : []);
86
87
  return {
87
88
  data: data,
88
89
  error: error,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "2.1.3-beta.4",
3
+ "version": "2.1.3-beta.5",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {