@mic-rexjs/usecases-react 2.3.6 → 2.5.0
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/dist/index.min.js +1 -1
- package/es/enums/UseCaseArgumentTypes/index.d.ts +1 -2
- package/es/enums/UseCaseArgumentTypes/index.js +0 -1
- package/es/enums/UseCaseStatuses/index.d.ts +1 -2
- package/es/enums/UseCaseStatuses/index.js +0 -2
- package/es/hooks/useArgumentTypes/index.js +1 -4
- package/es/hooks/useEntity/index.js +6 -10
- package/es/hooks/useRuntimeEntity/index.d.ts +3 -0
- package/es/hooks/useRuntimeEntity/index.js +18 -0
- package/es/hooks/useUseCase/index.js +2 -2
- package/es/hooks/useUseCase/index.test.js +50 -95
- package/es/hooks/useUseCase/types.d.ts +2 -6
- package/es/hooks/useUseCaseStatuses/index.d.ts +1 -2
- package/es/hooks/useUseCaseStatuses/index.js +2 -6
- package/es/index.d.ts +0 -1
- package/es/index.js +0 -1
- package/es/methods/fillArguments/index.js +2 -20
- package/es/methods/fillArguments/types.d.ts +0 -2
- package/lib/enums/UseCaseArgumentTypes/index.js +0 -1
- package/lib/enums/UseCaseStatuses/index.js +0 -2
- package/lib/hooks/useArgumentTypes/index.js +2 -6
- package/lib/hooks/useEntity/index.js +6 -10
- package/lib/hooks/useRuntimeEntity/index.js +24 -0
- package/lib/hooks/useUseCase/index.js +4 -5
- package/lib/hooks/useUseCase/index.test.js +124 -179
- package/lib/hooks/useUseCaseStatuses/index.js +2 -6
- package/lib/index.js +1 -8
- package/lib/methods/fillArguments/index.js +4 -10
- package/package.json +2 -2
- package/es/enums/UseCaseModes/index.d.ts +0 -4
- package/es/enums/UseCaseModes/index.js +0 -5
- package/es/hooks/useStatelessUseCase/index.d.ts +0 -2
- package/es/hooks/useStatelessUseCase/index.js +0 -5
- package/es/hooks/useStatelessUseCase/index.test.d.ts +0 -1
- package/es/hooks/useStatelessUseCase/index.test.js +0 -37
- package/es/hooks/useStatelessUseCase/types.d.ts +0 -3
- package/es/hooks/useStatelessUseCase/types.js +0 -1
- package/es/methods/getRenderingEntity/index.d.ts +0 -3
- package/es/methods/getRenderingEntity/index.js +0 -13
- package/lib/enums/UseCaseModes/index.js +0 -11
- package/lib/hooks/useStatelessUseCase/index.js +0 -11
- package/lib/hooks/useStatelessUseCase/index.test.js +0 -37
- package/lib/hooks/useStatelessUseCase/types.js +0 -5
- package/lib/methods/getRenderingEntity/index.js +0 -19
|
@@ -9,17 +9,17 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
9
9
|
var _react = require("react");
|
|
10
10
|
var _usecases = require("@mic-rexjs/usecases");
|
|
11
11
|
var _UseCaseStatuses = require("../../enums/UseCaseStatuses");
|
|
12
|
-
var _getRenderingEntity = require("../../methods/getRenderingEntity");
|
|
13
12
|
var _useContextualItem = require("../useContextualItem");
|
|
14
13
|
var _ahooks = require("ahooks");
|
|
15
14
|
var _triggerWatchers = require("../../methods/triggerWatchers");
|
|
15
|
+
var _useRuntimeEntity = require("../useRuntimeEntity");
|
|
16
16
|
var useEntity = exports.useEntity = function useEntity(statuses, rootEntity, contextStore, options, depsKey) {
|
|
17
17
|
var _useState = (0, _react.useState)(rootEntity),
|
|
18
18
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
19
19
|
entityState = _useState2[0],
|
|
20
20
|
setEntityState = _useState2[1];
|
|
21
21
|
var contextEntity = contextStore ? contextStore.value : null;
|
|
22
|
-
var
|
|
22
|
+
var runtimeEntity = (0, _useRuntimeEntity.useRuntimeEntity)(statuses, entityState, rootEntity, contextEntity);
|
|
23
23
|
var entityEnabled = (statuses & _UseCaseStatuses.UseCaseStatuses.EntityEnabled) === _UseCaseStatuses.UseCaseStatuses.EntityEnabled;
|
|
24
24
|
var entityRootEnabled = (statuses & _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) === _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled;
|
|
25
25
|
var optionsRef = (0, _ahooks.useLatest)(options);
|
|
@@ -27,19 +27,15 @@ var useEntity = exports.useEntity = function useEntity(statuses, rootEntity, con
|
|
|
27
27
|
if (!entityRootEnabled) {
|
|
28
28
|
return new _usecases.EntityStore(null);
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
return new _usecases.EntityStore(renderingEntity, {
|
|
30
|
+
return new _usecases.EntityStore(runtimeEntity, {
|
|
32
31
|
onChange: function onChange(newEntity) {
|
|
33
|
-
if (stateless) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
32
|
setEntityState(newEntity);
|
|
37
33
|
}
|
|
38
34
|
});
|
|
39
35
|
});
|
|
40
36
|
if (entityRootEnabled) {
|
|
41
37
|
// 执行同步操作
|
|
42
|
-
store.value =
|
|
38
|
+
store.value = runtimeEntity;
|
|
43
39
|
}
|
|
44
40
|
(0, _react.useEffect)(function () {
|
|
45
41
|
if (!entityEnabled) {
|
|
@@ -60,6 +56,6 @@ var useEntity = exports.useEntity = function useEntity(statuses, rootEntity, con
|
|
|
60
56
|
};
|
|
61
57
|
}, [entityEnabled, store, depsKey, optionsRef]);
|
|
62
58
|
return (0, _ahooks.useCreation)(function () {
|
|
63
|
-
return [
|
|
64
|
-
}, [
|
|
59
|
+
return [runtimeEntity, store];
|
|
60
|
+
}, [runtimeEntity, store]);
|
|
65
61
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRuntimeEntity = void 0;
|
|
7
|
+
var _UseCaseStatuses = require("../../enums/UseCaseStatuses");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var useRuntimeEntity = exports.useRuntimeEntity = function useRuntimeEntity(statuses, entityState, rootEntity, contextEntity) {
|
|
10
|
+
var prevRootEntityRef = (0, _react.useRef)(rootEntity);
|
|
11
|
+
var entityRootDisabled = (statuses & _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled) !== _UseCaseStatuses.UseCaseStatuses.EntityRootEnabled;
|
|
12
|
+
if (entityRootDisabled) {
|
|
13
|
+
return contextEntity;
|
|
14
|
+
}
|
|
15
|
+
var isFunction = typeof rootEntity === 'function';
|
|
16
|
+
var prevRootEntity = prevRootEntityRef.current;
|
|
17
|
+
switch (true) {
|
|
18
|
+
case isFunction:
|
|
19
|
+
case prevRootEntity === rootEntity:
|
|
20
|
+
return entityState;
|
|
21
|
+
}
|
|
22
|
+
prevRootEntityRef.current = rootEntity;
|
|
23
|
+
return rootEntity;
|
|
24
|
+
};
|
|
@@ -30,19 +30,18 @@ var useUseCase = exports.useUseCase = function useUseCase() {
|
|
|
30
30
|
}
|
|
31
31
|
var argumentTypes = (0, _useArgumentTypes.useArgumentTypes)(args);
|
|
32
32
|
var fullArguments = (0, _fillArguments.fillArguments)(args, argumentTypes);
|
|
33
|
-
var _fullArguments = (0, _slicedToArray2["default"])(fullArguments,
|
|
33
|
+
var _fullArguments = (0, _slicedToArray2["default"])(fullArguments, 4),
|
|
34
34
|
unsafeEntity = _fullArguments[0],
|
|
35
35
|
unsafeUsecase = _fullArguments[1],
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
deps = _fullArguments[4];
|
|
36
|
+
options = _fullArguments[2],
|
|
37
|
+
deps = _fullArguments[3];
|
|
39
38
|
var unkownUsecase = (0, _useConstantFn.useConstantFn)(unsafeUsecase);
|
|
40
39
|
var usecase = unkownUsecase;
|
|
41
40
|
var entityUseCase = unkownUsecase;
|
|
42
41
|
var context = (0, _useUseCaseContext.useUseCaseContext)(unkownUsecase, argumentTypes);
|
|
43
42
|
var contextValue = (0, _react.useContext)(context);
|
|
44
43
|
var entityContextValue = contextValue;
|
|
45
|
-
var statuses = (0, _useUseCaseStatuses.useUseCaseStatuses)(argumentTypes,
|
|
44
|
+
var statuses = (0, _useUseCaseStatuses.useUseCaseStatuses)(argumentTypes, contextValue);
|
|
46
45
|
var optionsRef = (0, _ahooks.useLatest)(options);
|
|
47
46
|
var depsKey = (0, _useCompareDeps.useCompareDeps)(deps);
|
|
48
47
|
var _ref = contextValue || {},
|