@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.
- package/README.md +1 -1
- package/dist/index.min.js +1 -1
- package/es/configs/defaultUseCaseContext/index.d.ts +2 -3
- package/es/configs/defaultUseCaseContext/index.js +1 -1
- package/es/configs/defaultUseCaseContext/types.d.ts +11 -3
- package/es/configs/useCaseContextReferenceMap/index.d.ts +1 -0
- package/es/configs/useCaseContextReferenceMap/index.js +1 -0
- package/es/configs/useCaseContextReferenceMap/types.d.ts +8 -0
- package/es/enums/UseCaseModes/index.d.ts +6 -0
- package/es/enums/UseCaseModes/index.js +7 -0
- package/es/hooks/useChangeCallbackCollection/index.d.ts +3 -0
- package/es/hooks/useChangeCallbackCollection/index.js +29 -0
- package/es/hooks/useGlobalUseCase/index.d.ts +2 -0
- package/es/hooks/useGlobalUseCase/index.js +11 -0
- package/es/hooks/useGlobalUseCase/index.test.js +71 -0
- package/es/hooks/useGlobalUseCase/types.d.ts +12 -0
- package/es/hooks/useGlobalUseCase/types.js +1 -0
- package/es/hooks/useProvider/index.d.ts +3 -5
- package/es/hooks/useProvider/index.js +25 -17
- package/es/hooks/useStatelessUseCase/index.d.ts +2 -0
- package/es/hooks/useStatelessUseCase/index.js +8 -0
- package/es/hooks/useStatelessUseCase/index.test.d.ts +1 -0
- package/es/hooks/useStatelessUseCase/index.test.js +75 -0
- package/es/hooks/useStatelessUseCase/types.d.ts +5 -0
- package/es/hooks/useStatelessUseCase/types.js +1 -0
- package/es/hooks/useUseCase/index.js +27 -29
- package/es/hooks/useUseCase/index.test.js +243 -207
- package/es/hooks/useUseCase/types.d.ts +55 -8
- package/es/hooks/useUseCaseContext/index.d.ts +3 -3
- package/es/hooks/useUseCaseContext/index.js +35 -6
- package/es/hooks/useUseCaseContext/index.test.d.ts +1 -0
- package/es/hooks/useUseCaseContext/index.test.js +60 -0
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -0
- package/es/methods/getRootEntity/index.d.ts +2 -1
- package/es/methods/getRootEntity/index.js +6 -5
- package/es/methods/initEntityReducers/index.js +2 -3
- package/es/methods/toMaxArguments/index.d.ts +3 -0
- package/es/methods/toMaxArguments/index.js +28 -0
- package/es/methods/triggerCallbacks/index.d.ts +2 -3
- package/es/methods/triggerCallbacks/index.js +3 -12
- package/lib/configs/defaultUseCaseContext/index.js +1 -1
- package/lib/configs/useCaseContextReferenceMap/index.js +8 -0
- package/lib/enums/UseCaseModes/index.js +14 -0
- package/lib/hooks/useChangeCallbackCollection/index.js +37 -0
- package/lib/hooks/useGlobalUseCase/index.js +25 -0
- package/lib/hooks/useGlobalUseCase/index.test.js +78 -0
- package/lib/hooks/useProvider/index.js +30 -24
- package/lib/hooks/useStatelessUseCase/index.js +22 -0
- package/lib/hooks/useStatelessUseCase/index.test.js +78 -0
- package/lib/hooks/useStatelessUseCase/types.js +5 -0
- package/lib/hooks/useUseCase/index.js +40 -31
- package/lib/hooks/useUseCase/index.test.js +337 -288
- package/lib/hooks/useUseCaseContext/index.js +37 -6
- package/lib/hooks/useUseCaseContext/index.test.js +75 -0
- package/lib/index.js +15 -1
- package/lib/methods/getRootEntity/index.js +6 -5
- package/lib/methods/initEntityReducers/index.js +3 -6
- package/lib/methods/toMaxArguments/index.js +25 -0
- package/lib/methods/triggerCallbacks/index.js +3 -13
- package/package.json +3 -3
- package/es/configs/usecaseContextMap/index.d.ts +0 -1
- package/es/configs/usecaseContextMap/index.js +0 -1
- package/es/configs/usecaseContextMap/types.d.ts +0 -7
- package/es/hooks/useOptionsRefCollection/index.d.ts +0 -3
- package/es/hooks/useOptionsRefCollection/index.js +0 -22
- package/es/hooks/useOptionsRefCollection/types.d.ts +0 -2
- package/lib/configs/usecaseContextMap/index.js +0 -8
- package/lib/hooks/useOptionsRefCollection/index.js +0 -29
- /package/es/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
- /package/es/hooks/{useOptionsRefCollection/types.js → useGlobalUseCase/index.test.d.ts} +0 -0
- /package/lib/configs/{usecaseContextMap → useCaseContextReferenceMap}/types.js +0 -0
- /package/lib/hooks/{useOptionsRefCollection → useGlobalUseCase}/types.js +0 -0
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.useUseCase = void 0;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
9
|
var _ahooks = require("ahooks");
|
|
11
10
|
var _react = require("react");
|
|
@@ -14,52 +13,62 @@ var _useConstantFn = require("../useConstantFn");
|
|
|
14
13
|
var _useProvider = require("../useProvider");
|
|
15
14
|
var _useCompareDeps = require("../useCompareDeps");
|
|
16
15
|
var _initEntityReducers = require("../../methods/initEntityReducers");
|
|
17
|
-
var _useOptionsRefCollection = require("../useOptionsRefCollection");
|
|
18
16
|
var _triggerCallbacks = require("../../methods/triggerCallbacks");
|
|
19
17
|
var _getRootEntity = require("../../methods/getRootEntity");
|
|
20
18
|
var _useUseCaseContext = require("../useUseCaseContext");
|
|
21
19
|
var _defaultUseCaseContext = require("../../configs/defaultUseCaseContext");
|
|
22
20
|
var _useIsRenderingRef = require("../useIsRenderingRef");
|
|
23
21
|
var _cacheReducerCalls = require("../../methods/cacheReducerCalls");
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
22
|
+
var _UseCaseModes = require("../../enums/UseCaseModes");
|
|
23
|
+
var _toMaxArguments3 = require("../../methods/toMaxArguments");
|
|
24
|
+
var _useChangeCallbackCollection = require("../useChangeCallbackCollection");
|
|
25
|
+
var useUseCase = function useUseCase() {
|
|
26
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
27
|
+
args[_key] = arguments[_key];
|
|
28
|
+
}
|
|
29
|
+
var _toMaxArguments = (0, _toMaxArguments3.toMaxArguments)(args),
|
|
30
|
+
_toMaxArguments2 = (0, _slicedToArray2["default"])(_toMaxArguments, 5),
|
|
31
|
+
unsafeEntity = _toMaxArguments2[0],
|
|
32
|
+
unsafeUsecase = _toMaxArguments2[1],
|
|
33
|
+
unsafeMode = _toMaxArguments2[2],
|
|
34
|
+
options = _toMaxArguments2[3],
|
|
35
|
+
deps = _toMaxArguments2[4];
|
|
36
|
+
var _useState = (0, _react.useState)(unsafeEntity),
|
|
29
37
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
30
38
|
entityState = _useState2[0],
|
|
31
39
|
setEntityState = _useState2[1];
|
|
32
|
-
var
|
|
40
|
+
var usecase = (0, _useConstantFn.useConstantFn)(unsafeUsecase);
|
|
41
|
+
var entityUseCase = usecase;
|
|
42
|
+
var mode = (0, _useConstant.useConstant)(unsafeMode);
|
|
33
43
|
var depsKey = (0, _useCompareDeps.useCompareDeps)(deps);
|
|
34
44
|
var isRenderingRef = (0, _useIsRenderingRef.useIsRenderingRef)();
|
|
35
|
-
var
|
|
36
|
-
var entityUseCase = usecase;
|
|
45
|
+
var isContextRoot = (0, _useConstant.useConstant)(typeof args[1] === 'function');
|
|
37
46
|
var defaultContext = _defaultUseCaseContext.defaultUseCaseContext;
|
|
38
|
-
var context = (0, _useUseCaseContext.useUseCaseContext)(entityUseCase,
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
var context = (0, _useUseCaseContext.useUseCaseContext)(entityUseCase, isContextRoot ? null : defaultContext);
|
|
48
|
+
var getContextValue = (0, _react.useContext)(context);
|
|
49
|
+
var hasContextValueGetter = getContextValue !== null;
|
|
50
|
+
var _ref = (getContextValue === null || getContextValue === void 0 ? void 0 : getContextValue()) || {},
|
|
51
|
+
contextEntity = _ref.entity,
|
|
52
|
+
_ref$reducers = _ref.reducers,
|
|
53
|
+
contextEntityReducers = _ref$reducers === void 0 ? null : _ref$reducers,
|
|
54
|
+
_ref$changeCallbackCo = _ref.changeCallbackCollection,
|
|
55
|
+
contextChangeCallbackCollection = _ref$changeCallbackCo === void 0 ? null : _ref$changeCallbackCo;
|
|
46
56
|
// 是否需要初始化根 `redurcers`
|
|
47
|
-
var isRoot =
|
|
57
|
+
var isRoot = isContextRoot || !hasContextValueGetter;
|
|
48
58
|
// 是否为上下文模式
|
|
49
|
-
var isContextMode =
|
|
50
|
-
|
|
51
|
-
var optionsRefCollection = (0, _useOptionsRefCollection.useOptionsRefCollection)(isRoot, contextOptionsRefCollection || null, options);
|
|
59
|
+
var isContextMode = isContextRoot || hasContextValueGetter;
|
|
60
|
+
var changeCallbackCollection = (0, _useChangeCallbackCollection.useChangeCallbackCollection)(isRoot, contextChangeCallbackCollection, options);
|
|
52
61
|
var entity = (0, _ahooks.useCreation)(function () {
|
|
53
|
-
if (!
|
|
62
|
+
if (!isContextRoot) {
|
|
54
63
|
return contextEntity;
|
|
55
64
|
}
|
|
56
|
-
return (0, _getRootEntity.getRootEntity)(entityState,
|
|
57
|
-
}, [
|
|
65
|
+
return (0, _getRootEntity.getRootEntity)(entityState, unsafeEntity, mode);
|
|
66
|
+
}, [isContextRoot, contextEntity, mode, entityState, unsafeEntity]);
|
|
58
67
|
var onEntityChange = (0, _ahooks.useMemoizedFn)(function (newEntity, oldEntity) {
|
|
59
|
-
if (
|
|
68
|
+
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
60
69
|
setEntityState(newEntity);
|
|
61
70
|
}
|
|
62
|
-
(0, _triggerCallbacks.triggerCallbacks)(
|
|
71
|
+
(0, _triggerCallbacks.triggerCallbacks)(changeCallbackCollection, newEntity, oldEntity);
|
|
63
72
|
});
|
|
64
73
|
var createRootEntityReducers = (0, _ahooks.useMemoizedFn)(function () {
|
|
65
74
|
var initOptions = options;
|
|
@@ -70,11 +79,11 @@ var useUseCase = function useUseCase(arg1, arg2, arg3, arg4) {
|
|
|
70
79
|
});
|
|
71
80
|
var rootEntityReducers = (0, _ahooks.useCreation)(function () {
|
|
72
81
|
void depsKey;
|
|
73
|
-
if (!
|
|
82
|
+
if (!isContextRoot) {
|
|
74
83
|
return null;
|
|
75
84
|
}
|
|
76
85
|
return createRootEntityReducers();
|
|
77
|
-
}, [
|
|
86
|
+
}, [isContextRoot, depsKey, createRootEntityReducers]);
|
|
78
87
|
var entityReducers = (0, _ahooks.useCreation)(function () {
|
|
79
88
|
return rootEntityReducers || contextEntityReducers || {};
|
|
80
89
|
}, [rootEntityReducers, contextEntityReducers]);
|
|
@@ -85,11 +94,11 @@ var useUseCase = function useUseCase(arg1, arg2, arg3, arg4) {
|
|
|
85
94
|
}
|
|
86
95
|
return createReducers();
|
|
87
96
|
}, [isContextMode, depsKey, createReducers]);
|
|
88
|
-
var Provider = (0, _useProvider.useProvider)(context, entity, entityReducers,
|
|
97
|
+
var Provider = (0, _useProvider.useProvider)(context, mode, entity, entityReducers, changeCallbackCollection);
|
|
89
98
|
var createCoreCollection = (0, _ahooks.useMemoizedFn)(function (coreEntity, coreReducers) {
|
|
90
99
|
return [coreEntity, (0, _cacheReducerCalls.cacheReducerCalls)(coreReducers, function () {
|
|
91
100
|
return isRenderingRef.current;
|
|
92
|
-
}),
|
|
101
|
+
}), isContextRoot ? Provider : null];
|
|
93
102
|
});
|
|
94
103
|
return (0, _ahooks.useCreation)(function () {
|
|
95
104
|
if (isContextMode) {
|