@mic-rexjs/usecases-react 1.8.0 → 2.0.2

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.
Files changed (73) hide show
  1. package/README.md +1 -1
  2. package/dist/index.min.js +1 -1
  3. package/es/configs/defaultUseCaseContext/index.d.ts +2 -3
  4. package/es/configs/defaultUseCaseContext/index.js +1 -1
  5. package/es/configs/defaultUseCaseContext/types.d.ts +11 -3
  6. package/es/configs/useCaseContextReferenceMap/index.d.ts +1 -0
  7. package/es/configs/useCaseContextReferenceMap/index.js +1 -0
  8. package/es/configs/useCaseContextReferenceMap/types.d.ts +8 -0
  9. package/es/enums/UseCaseModes/index.d.ts +6 -0
  10. package/es/enums/UseCaseModes/index.js +7 -0
  11. package/es/hooks/useChangeCallbackCollection/index.d.ts +3 -0
  12. package/es/hooks/useChangeCallbackCollection/index.js +29 -0
  13. package/es/hooks/useGlobalUseCase/index.d.ts +2 -0
  14. package/es/hooks/useGlobalUseCase/index.js +11 -0
  15. package/es/hooks/useGlobalUseCase/index.test.js +71 -0
  16. package/es/hooks/useGlobalUseCase/types.d.ts +12 -0
  17. package/es/hooks/useGlobalUseCase/types.js +1 -0
  18. package/es/hooks/useProvider/index.d.ts +3 -5
  19. package/es/hooks/useProvider/index.js +25 -17
  20. package/es/hooks/useStatelessUseCase/index.d.ts +2 -0
  21. package/es/hooks/useStatelessUseCase/index.js +8 -0
  22. package/es/hooks/useStatelessUseCase/index.test.d.ts +1 -0
  23. package/es/hooks/useStatelessUseCase/index.test.js +75 -0
  24. package/es/hooks/useStatelessUseCase/types.d.ts +5 -0
  25. package/es/hooks/useStatelessUseCase/types.js +1 -0
  26. package/es/hooks/useUseCase/index.js +27 -29
  27. package/es/hooks/useUseCase/index.test.js +243 -207
  28. package/es/hooks/useUseCase/types.d.ts +55 -8
  29. package/es/hooks/useUseCaseContext/index.d.ts +3 -3
  30. package/es/hooks/useUseCaseContext/index.js +35 -6
  31. package/es/hooks/useUseCaseContext/index.test.d.ts +1 -0
  32. package/es/hooks/useUseCaseContext/index.test.js +60 -0
  33. package/es/index.d.ts +2 -0
  34. package/es/index.js +2 -0
  35. package/es/methods/getRootEntity/index.d.ts +2 -1
  36. package/es/methods/getRootEntity/index.js +6 -5
  37. package/es/methods/initEntityReducers/index.js +2 -3
  38. package/es/methods/toMaxArguments/index.d.ts +3 -0
  39. package/es/methods/toMaxArguments/index.js +28 -0
  40. package/es/methods/triggerCallbacks/index.d.ts +2 -3
  41. package/es/methods/triggerCallbacks/index.js +3 -12
  42. package/lib/configs/defaultUseCaseContext/index.js +1 -1
  43. package/lib/configs/useCaseContextReferenceMap/index.js +8 -0
  44. package/lib/enums/UseCaseModes/index.js +14 -0
  45. package/lib/hooks/useChangeCallbackCollection/index.js +37 -0
  46. package/lib/hooks/useGlobalUseCase/index.js +25 -0
  47. package/lib/hooks/useGlobalUseCase/index.test.js +78 -0
  48. package/lib/hooks/useProvider/index.js +30 -24
  49. package/lib/hooks/useStatelessUseCase/index.js +22 -0
  50. package/lib/hooks/useStatelessUseCase/index.test.js +78 -0
  51. package/lib/hooks/useStatelessUseCase/types.js +5 -0
  52. package/lib/hooks/useUseCase/index.js +40 -31
  53. package/lib/hooks/useUseCase/index.test.js +337 -288
  54. package/lib/hooks/useUseCaseContext/index.js +37 -6
  55. package/lib/hooks/useUseCaseContext/index.test.js +75 -0
  56. package/lib/index.js +15 -1
  57. package/lib/methods/getRootEntity/index.js +6 -5
  58. package/lib/methods/initEntityReducers/index.js +3 -6
  59. package/lib/methods/toMaxArguments/index.js +25 -0
  60. package/lib/methods/triggerCallbacks/index.js +3 -13
  61. package/package.json +3 -3
  62. package/es/configs/usecaseContextMap/index.d.ts +0 -1
  63. package/es/configs/usecaseContextMap/index.js +0 -1
  64. package/es/configs/usecaseContextMap/types.d.ts +0 -7
  65. package/es/hooks/useOptionsRefCollection/index.d.ts +0 -3
  66. package/es/hooks/useOptionsRefCollection/index.js +0 -22
  67. package/es/hooks/useOptionsRefCollection/types.d.ts +0 -2
  68. package/lib/configs/usecaseContextMap/index.js +0 -8
  69. package/lib/hooks/useOptionsRefCollection/index.js +0 -29
  70. /package/es/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
  71. /package/es/hooks/{useOptionsRefCollection/types.js → useGlobalUseCase/index.test.d.ts} +0 -0
  72. /package/lib/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
  73. /package/lib/hooks/{useOptionsRefCollection → useGlobalUseCase}/types.js +0 -0
@@ -5,20 +5,51 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useUseCaseContext = void 0;
7
7
  var _useConstant = require("../useConstant");
8
- var _usecaseContextMap = require("../../configs/usecaseContextMap");
8
+ var _useCaseContextReferenceMap = require("../../configs/useCaseContextReferenceMap");
9
9
  var _react = require("react");
10
+ var _ahooks = require("ahooks");
10
11
  var useUseCaseContext = function useUseCaseContext(usecase, defaultContext) {
11
- return (0, _useConstant.useConstant)(function () {
12
- var map = _usecaseContextMap.usecaseContextMap;
12
+ var map = _useCaseContextReferenceMap.usecaseContextReferenceMap;
13
+ var context = (0, _useConstant.useConstant)(function () {
13
14
  if (map.has(usecase)) {
14
- return map.get(usecase);
15
+ var reference = map.get(usecase);
16
+ var value = reference.value,
17
+ times = reference.times;
18
+ map.set(usecase, {
19
+ value: value,
20
+ times: times + 1
21
+ });
22
+ return value;
15
23
  }
16
24
  if (defaultContext) {
17
25
  return defaultContext;
18
26
  }
19
- var ctx = (0, _react.createContext)({});
20
- map.set(usecase, ctx);
27
+ var ctx = (0, _react.createContext)(null);
28
+ map.set(usecase, {
29
+ value: ctx,
30
+ times: 1
31
+ });
21
32
  return ctx;
22
33
  });
34
+ (0, _ahooks.useUnmount)(function () {
35
+ if (!map.has(usecase)) {
36
+ return;
37
+ }
38
+ var reference = map.get(usecase);
39
+ var value = reference.value,
40
+ times = reference.times;
41
+ if (context !== value) {
42
+ return;
43
+ }
44
+ if (times === 1) {
45
+ map["delete"](usecase);
46
+ return;
47
+ }
48
+ map.set(usecase, {
49
+ value: value,
50
+ times: times - 1
51
+ });
52
+ });
53
+ return context;
23
54
  };
24
55
  exports.useUseCaseContext = useUseCaseContext;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
+ var _globals = require("@jest/globals");
6
+ var _react = require("@testing-library/react");
7
+ var _ = require(".");
8
+ var _usecases = require("@mic-rexjs/usecases");
9
+ var _defaultUseCaseContext = require("../../configs/defaultUseCaseContext");
10
+ var _useCaseContextReferenceMap = require("../../configs/useCaseContextReferenceMap");
11
+ var testUseCase = function testUseCase() {
12
+ return (0, _usecases.objectUseCase)();
13
+ };
14
+ (0, _globals.describe)('useUseCaseContext', function () {
15
+ (0, _globals.test)('should return the default context if map has not save a usecase and provide a default context', function () {
16
+ var defaultContext = _defaultUseCaseContext.defaultUseCaseContext;
17
+ var _renderHook = (0, _react.renderHook)(function () {
18
+ return (0, _.useUseCaseContext)(testUseCase, defaultContext);
19
+ }),
20
+ result = _renderHook.result;
21
+ var current = result.current;
22
+ (0, _globals.expect)(current).toBe(_defaultUseCaseContext.defaultUseCaseContext);
23
+ });
24
+ (0, _globals.test)('should return a new context if map has not save a usecase and does not provide a default context', function () {
25
+ var _renderHook2 = (0, _react.renderHook)(function () {
26
+ return (0, _.useUseCaseContext)(testUseCase, null);
27
+ }),
28
+ result = _renderHook2.result;
29
+ var current = result.current;
30
+ (0, _globals.expect)((0, _typeof2["default"])(current)).toBe('object');
31
+ });
32
+ _globals.test.each([void 0, null, _defaultUseCaseContext.defaultUseCaseContext])('should return the existing context if map has save a usecase already', function (defaultContext) {
33
+ var _renderHook3 = (0, _react.renderHook)(function () {
34
+ return (0, _.useUseCaseContext)(testUseCase) === (0, _.useUseCaseContext)(testUseCase, defaultContext);
35
+ }),
36
+ result = _renderHook3.result;
37
+ var isSame = result.current;
38
+ (0, _globals.expect)(isSame).toBe(true);
39
+ });
40
+ (0, _globals.test)('check context reference times when mount/unmount a usecase', function () {
41
+ var _renderHook4 = (0, _react.renderHook)(function () {
42
+ (0, _.useUseCaseContext)(testUseCase);
43
+ }),
44
+ unmount1 = _renderHook4.unmount;
45
+ var _usecaseContextRefere = _useCaseContextReferenceMap.usecaseContextReferenceMap.get(testUseCase),
46
+ times1 = _usecaseContextRefere.times;
47
+ var _renderHook5 = (0, _react.renderHook)(function () {
48
+ (0, _.useUseCaseContext)(testUseCase);
49
+ (0, _.useUseCaseContext)(testUseCase);
50
+ }),
51
+ unmount2 = _renderHook5.unmount,
52
+ rerender2 = _renderHook5.rerender;
53
+ var _usecaseContextRefere2 = _useCaseContextReferenceMap.usecaseContextReferenceMap.get(testUseCase),
54
+ times2 = _usecaseContextRefere2.times;
55
+ (0, _globals.expect)(times1).toBe(1);
56
+ (0, _globals.expect)(times2).toBe(3);
57
+ unmount1();
58
+ var _usecaseContextRefere3 = _useCaseContextReferenceMap.usecaseContextReferenceMap.get(testUseCase),
59
+ times3 = _usecaseContextRefere3.times;
60
+ (0, _globals.expect)(times3).toBe(2);
61
+ unmount2();
62
+ var hasSaved = _useCaseContextReferenceMap.usecaseContextReferenceMap.has(testUseCase);
63
+ (0, _globals.expect)(hasSaved).toBe(false);
64
+ });
65
+ (0, _globals.test)('context reference times should not change when rerender hooks', function () {
66
+ var _renderHook6 = (0, _react.renderHook)(function () {
67
+ (0, _.useUseCaseContext)(testUseCase);
68
+ }),
69
+ rerender = _renderHook6.rerender;
70
+ rerender();
71
+ var _usecaseContextRefere4 = _useCaseContextReferenceMap.usecaseContextReferenceMap.get(testUseCase),
72
+ times = _usecaseContextRefere4.times;
73
+ (0, _globals.expect)(times).toBe(1);
74
+ });
75
+ });
package/lib/index.js CHANGED
@@ -9,6 +9,18 @@ Object.defineProperty(exports, "UseCaseFragment", {
9
9
  return _UseCaseFragment.UseCaseFragment;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "useGlobalUseCase", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useGlobalUseCase.useGlobalUseCase;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useStatelessUseCase", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _useStatelessUseCase.useStatelessUseCase;
22
+ }
23
+ });
12
24
  Object.defineProperty(exports, "useUseCase", {
13
25
  enumerable: true,
14
26
  get: function get() {
@@ -16,4 +28,6 @@ Object.defineProperty(exports, "useUseCase", {
16
28
  }
17
29
  });
18
30
  var _UseCaseFragment = require("./components/UseCaseFragment");
19
- var _useUseCase = require("./hooks/useUseCase");
31
+ var _useUseCase = require("./hooks/useUseCase");
32
+ var _useGlobalUseCase = require("./hooks/useGlobalUseCase");
33
+ var _useStatelessUseCase = require("./hooks/useStatelessUseCase");
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getRootEntity = void 0;
7
- var getRootEntity = function getRootEntity(entityState, entityArg, stateless) {
8
- if (!stateless) {
7
+ var _UseCaseModes = require("../../enums/UseCaseModes");
8
+ var getRootEntity = function getRootEntity(entityState, unsafeEntity, mode) {
9
+ if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
9
10
  return entityState;
10
11
  }
11
- if (typeof entityArg === 'function') {
12
- return entityArg();
12
+ if (typeof unsafeEntity === 'function') {
13
+ return unsafeEntity();
13
14
  }
14
- return entityArg;
15
+ return unsafeEntity;
15
16
  };
16
17
  exports.getRootEntity = getRootEntity;
@@ -8,18 +8,15 @@ exports.initEntityReducers = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _usecases = require("@mic-rexjs/usecases");
11
- var _excluded = ["stateless", "watch", "onChange", "options"];
11
+ var _excluded = ["watch", "onChange", "options"];
12
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
14
  var initEntityReducers = function initEntityReducers(entity, usecase, options, onEntityChange) {
15
- var _entityReducerUseCase = (0, _usecases.entityReducerUseCase)(),
16
- createEntityReducers = _entityReducerUseCase.createEntityReducers;
17
- var stateless = options.stateless,
18
- watch = options.watch,
15
+ var watch = options.watch,
19
16
  onChange = options.onChange,
20
17
  usecaseOptions = options.options,
21
18
  restUseCaseOptions = (0, _objectWithoutProperties2["default"])(options, _excluded);
22
- return createEntityReducers(entity, usecase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
19
+ return (0, _usecases.createEntityReducers)(entity, usecase, _objectSpread(_objectSpread(_objectSpread({}, restUseCaseOptions), usecaseOptions), {}, {
23
20
  onChange: onEntityChange,
24
21
  onGenerate: function onGenerate(newEntity, result) {
25
22
  return result;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.toMaxArguments = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _UseCaseModes = require("../../enums/UseCaseModes");
10
+ var toMaxArguments = function toMaxArguments(_ref) {
11
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 5),
12
+ arg1 = _ref2[0],
13
+ arg2 = _ref2[1],
14
+ arg3 = _ref2[2],
15
+ arg4 = _ref2[3],
16
+ arg5 = _ref2[4];
17
+ if (typeof arg2 !== 'function') {
18
+ return [null, arg1, _UseCaseModes.UseCaseModes.Normal, arg2 || {}, arg3 || []];
19
+ }
20
+ if (typeof arg3 === 'number') {
21
+ return [arg1, arg2, arg3, arg4 || {}, arg5 || []];
22
+ }
23
+ return [arg1, arg2, _UseCaseModes.UseCaseModes.Normal, arg3 || {}, arg4 || []];
24
+ };
25
+ exports.toMaxArguments = toMaxArguments;
@@ -4,19 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.triggerCallbacks = void 0;
7
- var _triggerWatchers = require("../triggerWatchers");
8
- var triggerCallbacks = function triggerCallbacks(optionsRefCollection, newEntity, oldEntity) {
9
- for (var i = optionsRefCollection.length; i > 0; i--) {
10
- var options = optionsRefCollection[i - 1].current;
11
- if (!options) {
12
- continue;
13
- }
14
- var onChange = options.onChange,
15
- watch = options.watch;
16
- if (watch) {
17
- (0, _triggerWatchers.triggerWatchers)(watch, newEntity, oldEntity);
18
- }
19
- onChange === null || onChange === void 0 ? void 0 : onChange(newEntity, oldEntity);
7
+ var triggerCallbacks = function triggerCallbacks(changeCallbackCollection, newEntity, oldEntity) {
8
+ for (var i = changeCallbackCollection.length; i > 0; i--) {
9
+ changeCallbackCollection[i - 1](newEntity, oldEntity);
20
10
  }
21
11
  };
22
12
  exports.triggerCallbacks = triggerCallbacks;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mic-rexjs/usecases-react",
3
- "version": "1.8.0",
3
+ "version": "2.0.2",
4
4
  "description": "React-based solution for use usecases of Clean Architecture",
5
5
  "private": false,
6
6
  "keywords": [
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "license": "MIT",
35
35
  "peerDependencies": {
36
- "@mic-rexjs/usecases": "^1.4.29",
36
+ "@mic-rexjs/usecases": "^2.0.0",
37
37
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
38
38
  },
39
39
  "dependencies": {
@@ -48,8 +48,8 @@
48
48
  "@babel/preset-typescript": "^7.22.5",
49
49
  "@commitlint/cli": "^17.6.6",
50
50
  "@commitlint/config-angular": "^17.6.6",
51
- "@mic-rexjs/usecases": "^1.4.29",
52
51
  "@jest/globals": "^29.5.0",
52
+ "@mic-rexjs/usecases": "^2.0.0",
53
53
  "@testing-library/react": "^14.0.0",
54
54
  "@types/node": "^20.4.2",
55
55
  "@types/react": "^18.2.14",
@@ -1 +0,0 @@
1
- export declare const usecaseContextMap: Map<any, any>;
@@ -1 +0,0 @@
1
- export const usecaseContextMap = new Map();
@@ -1,7 +0,0 @@
1
- /// <reference types="react" />
2
- import { EntityReducers, EntityUseCase } from '@mic-rexjs/usecases';
3
- import { UseCaseContextValue } from '../defaultUseCaseContext/types';
4
- export interface UseCaseMappingContext<T, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object = object> extends React.Context<UseCaseContextValue<T, TEntityReducers, TUseCaseOptions>> {
5
- }
6
- export interface UseCaseContextMap<T, TEntityReducers extends EntityReducers<T>, TUseCaseOptions extends object = object> extends Map<EntityUseCase<T, TEntityReducers, TUseCaseOptions>, UseCaseMappingContext<T, TEntityReducers, TUseCaseOptions>> {
7
- }
@@ -1,3 +0,0 @@
1
- import { UseCaseHookOptions } from '../useUseCase/types';
2
- import { OptionsRefCollection } from './types';
3
- export declare const useOptionsRefCollection: <T, TUseCaseOptions extends object, TOptions extends UseCaseHookOptions<T, TUseCaseOptions> = UseCaseHookOptions<T, TUseCaseOptions>>(isRoot: boolean, contextOptionsRefCollection: OptionsRefCollection<TOptions> | null, options: TOptions) => OptionsRefCollection<TOptions>;
@@ -1,22 +0,0 @@
1
- import { useCreation, useLatest, usePrevious, useUnmount } from 'ahooks';
2
- import { removeItem } from '../../methods/removeItem';
3
- export const useOptionsRefCollection = (isRoot, contextOptionsRefCollection, options) => {
4
- const optionsRef = useLatest(options);
5
- const optionsRefCollection = useCreation(() => {
6
- if (isRoot) {
7
- return [];
8
- }
9
- return contextOptionsRefCollection;
10
- }, [contextOptionsRefCollection, isRoot]);
11
- const prevOptionsRefCollection = usePrevious(optionsRefCollection);
12
- useCreation(() => {
13
- if (prevOptionsRefCollection) {
14
- removeItem(prevOptionsRefCollection, optionsRef);
15
- }
16
- optionsRefCollection.push(optionsRef);
17
- }, [optionsRef, optionsRefCollection, prevOptionsRefCollection]);
18
- useUnmount(() => {
19
- removeItem(optionsRefCollection, optionsRef);
20
- });
21
- return optionsRefCollection;
22
- };
@@ -1,2 +0,0 @@
1
- /// <reference types="react" />
2
- export type OptionsRefCollection<T> = React.MutableRefObject<T>[];
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.usecaseContextMap = void 0;
7
- var usecaseContextMap = new Map();
8
- exports.usecaseContextMap = usecaseContextMap;
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useOptionsRefCollection = void 0;
7
- var _ahooks = require("ahooks");
8
- var _removeItem = require("../../methods/removeItem");
9
- var useOptionsRefCollection = function useOptionsRefCollection(isRoot, contextOptionsRefCollection, options) {
10
- var optionsRef = (0, _ahooks.useLatest)(options);
11
- var optionsRefCollection = (0, _ahooks.useCreation)(function () {
12
- if (isRoot) {
13
- return [];
14
- }
15
- return contextOptionsRefCollection;
16
- }, [contextOptionsRefCollection, isRoot]);
17
- var prevOptionsRefCollection = (0, _ahooks.usePrevious)(optionsRefCollection);
18
- (0, _ahooks.useCreation)(function () {
19
- if (prevOptionsRefCollection) {
20
- (0, _removeItem.removeItem)(prevOptionsRefCollection, optionsRef);
21
- }
22
- optionsRefCollection.push(optionsRef);
23
- }, [optionsRef, optionsRefCollection, prevOptionsRefCollection]);
24
- (0, _ahooks.useUnmount)(function () {
25
- (0, _removeItem.removeItem)(optionsRefCollection, optionsRef);
26
- });
27
- return optionsRefCollection;
28
- };
29
- exports.useOptionsRefCollection = useOptionsRefCollection;