@sheinx/base 3.9.16-beta.5 → 3.9.16-beta.7
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/cjs/cascader/node.d.ts.map +1 -1
- package/cjs/cascader/node.js +16 -1
- package/esm/cascader/node.d.ts.map +1 -1
- package/esm/cascader/node.js +18 -3
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["node.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["node.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkC,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQhD,QAAA,MAAM,YAAY,gIAgLjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/cjs/cascader/node.js
CHANGED
|
@@ -54,6 +54,21 @@ var CascaderNode = function CascaderNode(props) {
|
|
|
54
54
|
var checkboxRef = (0, _react.useRef)();
|
|
55
55
|
var hasHandleSelectRef = (0, _react.useRef)(false);
|
|
56
56
|
var isDisabled = datum.isDisabled(id);
|
|
57
|
+
|
|
58
|
+
// 仅在使用 loader 的场景下,订阅本节点 valueMap 状态变化。
|
|
59
|
+
// 解决场景:勾选父节点 → loader 异步带入新子节点 → 子节点先以未勾选状态完成 render,
|
|
60
|
+
// 之后 useTree.setData → initValue 才把子节点 valueMap 同步为父节点的勾选态;
|
|
61
|
+
// 若不订阅,Checkbox 会停在未勾选状态,直到下次整体重渲才纠正。
|
|
62
|
+
// 不带 loader 的同步数据场景不存在该时序窗口,因此用 hasLoader 守卫避免无谓订阅。
|
|
63
|
+
var hasLoader = !!loader;
|
|
64
|
+
var forceUpdate = (0, _hooks.useRender)();
|
|
65
|
+
(0, _react.useEffect)(function () {
|
|
66
|
+
if (!hasLoader) return;
|
|
67
|
+
datum.bindUpdate(id, forceUpdate);
|
|
68
|
+
return function () {
|
|
69
|
+
datum.unBindUpdate(id);
|
|
70
|
+
};
|
|
71
|
+
}, [id, hasLoader]);
|
|
57
72
|
var children = data[childrenKey];
|
|
58
73
|
var hasChildren = children && children.length > 0;
|
|
59
74
|
var uncertainChildren = loader && !loading && children === undefined;
|
|
@@ -89,7 +104,7 @@ var CascaderNode = function CascaderNode(props) {
|
|
|
89
104
|
handleChange(null, !checked);
|
|
90
105
|
};
|
|
91
106
|
var isHoverAble = expandTrigger === 'hover' || expandTrigger === 'hover-only';
|
|
92
|
-
var isRealLeafNode = !hasChildren && !uncertainChildren;
|
|
107
|
+
var isRealLeafNode = !hasChildren && !uncertainChildren && !loading;
|
|
93
108
|
var getEvents = function getEvents() {
|
|
94
109
|
var events = {};
|
|
95
110
|
if (expandTrigger !== 'hover-only' || !hasChildren) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["node.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["node.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAkC,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQhD,QAAA,MAAM,YAAY,gIAgLjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/esm/cascader/node.js
CHANGED
|
@@ -14,9 +14,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
14
14
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
15
15
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
16
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
17
|
-
import { useState, useRef, useContext } from 'react';
|
|
17
|
+
import { useState, useRef, useContext, useEffect } from 'react';
|
|
18
18
|
import classNames from 'classnames';
|
|
19
|
-
import { util, FilterContext } from '@sheinx/hooks';
|
|
19
|
+
import { util, FilterContext, useRender } from '@sheinx/hooks';
|
|
20
20
|
import Checkbox from "../checkbox";
|
|
21
21
|
import Spin from "../spin";
|
|
22
22
|
import Icons from "../icons";
|
|
@@ -48,6 +48,21 @@ var CascaderNode = function CascaderNode(props) {
|
|
|
48
48
|
var checkboxRef = useRef();
|
|
49
49
|
var hasHandleSelectRef = useRef(false);
|
|
50
50
|
var isDisabled = datum.isDisabled(id);
|
|
51
|
+
|
|
52
|
+
// 仅在使用 loader 的场景下,订阅本节点 valueMap 状态变化。
|
|
53
|
+
// 解决场景:勾选父节点 → loader 异步带入新子节点 → 子节点先以未勾选状态完成 render,
|
|
54
|
+
// 之后 useTree.setData → initValue 才把子节点 valueMap 同步为父节点的勾选态;
|
|
55
|
+
// 若不订阅,Checkbox 会停在未勾选状态,直到下次整体重渲才纠正。
|
|
56
|
+
// 不带 loader 的同步数据场景不存在该时序窗口,因此用 hasLoader 守卫避免无谓订阅。
|
|
57
|
+
var hasLoader = !!loader;
|
|
58
|
+
var forceUpdate = useRender();
|
|
59
|
+
useEffect(function () {
|
|
60
|
+
if (!hasLoader) return;
|
|
61
|
+
datum.bindUpdate(id, forceUpdate);
|
|
62
|
+
return function () {
|
|
63
|
+
datum.unBindUpdate(id);
|
|
64
|
+
};
|
|
65
|
+
}, [id, hasLoader]);
|
|
51
66
|
var children = data[childrenKey];
|
|
52
67
|
var hasChildren = children && children.length > 0;
|
|
53
68
|
var uncertainChildren = loader && !loading && children === undefined;
|
|
@@ -83,7 +98,7 @@ var CascaderNode = function CascaderNode(props) {
|
|
|
83
98
|
handleChange(null, !checked);
|
|
84
99
|
};
|
|
85
100
|
var isHoverAble = expandTrigger === 'hover' || expandTrigger === 'hover-only';
|
|
86
|
-
var isRealLeafNode = !hasChildren && !uncertainChildren;
|
|
101
|
+
var isRealLeafNode = !hasChildren && !uncertainChildren && !loading;
|
|
87
102
|
var getEvents = function getEvents() {
|
|
88
103
|
var events = {};
|
|
89
104
|
if (expandTrigger !== 'hover-only' || !hasChildren) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheinx/base",
|
|
3
|
-
"version": "3.9.16-beta.
|
|
3
|
+
"version": "3.9.16-beta.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"module": "./esm/index.js",
|
|
11
11
|
"typings": "./cjs/index.d.ts",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@sheinx/hooks": "3.9.16-beta.
|
|
13
|
+
"@sheinx/hooks": "3.9.16-beta.7",
|
|
14
14
|
"immer": "^10.0.0",
|
|
15
15
|
"classnames": "^2.0.0",
|
|
16
16
|
"@shined/reactive": "^0.3.3"
|