rsuite 5.2.0 → 5.2.1

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.
@@ -19,7 +19,7 @@ export interface TreeNodesType {
19
19
  [key: string]: TreeNodeType;
20
20
  }
21
21
  export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
22
- export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
22
+ export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
23
23
  export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
24
24
  /**
25
25
  * is all siblings nodes is uncheckable
@@ -18,18 +18,19 @@ export function isEveryChildChecked(nodes, parent) {
18
18
  return nodes[child.refKey].check;
19
19
  });
20
20
  }
21
- export function isSomeChildChecked(nodes, parent) {
21
+ export function isSomeChildChecked(nodes, parent, childrenKey) {
22
22
  if (_isNil(nodes[parent.refKey])) {
23
23
  return false;
24
24
  }
25
25
 
26
26
  var children = getChildrenByFlattenNodes(nodes, parent);
27
+ return children.some(function (child) {
28
+ var _child$childrenKey;
27
29
 
28
- if (!children.length) {
29
- return nodes[parent.refKey].check;
30
- }
30
+ if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {
31
+ return isSomeChildChecked(nodes, child, childrenKey);
32
+ }
31
33
 
32
- return children.some(function (child) {
33
34
  return nodes[child.refKey].check;
34
35
  });
35
36
  }
@@ -184,7 +185,7 @@ export function getNodeCheckState(_ref) {
184
185
  return CHECK_STATE.CHECK;
185
186
  }
186
187
 
187
- if (isSomeChildChecked(nodes, node)) {
188
+ if (isSomeChildChecked(nodes, node, childrenKey)) {
188
189
  nodes[node.refKey].checkAll = false;
189
190
  return CHECK_STATE.INDETERMINATE;
190
191
  }
@@ -15,6 +15,7 @@ import SafeAnchor from '../SafeAnchor';
15
15
  import NavContext from '../Nav/NavContext';
16
16
  import useInternalId from '../utils/useInternalId';
17
17
  import { DropdownActionType } from './DropdownState';
18
+ import { useRenderDropdownItem } from './useRenderDropdownItem';
18
19
 
19
20
  /**
20
21
  * The <Dropdown.Item> API
@@ -88,15 +89,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
88
89
  };
89
90
  }
90
91
  }, [internalId, selected, dispatch]);
91
- var renderDropdownItem = useCallback(function (ui) {
92
- if (Component === 'li') {
93
- return ui;
94
- }
95
-
96
- return /*#__PURE__*/React.createElement("li", {
97
- role: "none presentation"
98
- }, ui);
99
- }, [Component]);
92
+ var renderDropdownItem = useRenderDropdownItem(Component);
100
93
 
101
94
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
102
95
  return /*#__PURE__*/React.createElement(SidenavDropdownItem, _extends({
@@ -105,18 +98,18 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
105
98
  }
106
99
 
107
100
  if (divider) {
108
- return renderDropdownItem( /*#__PURE__*/React.createElement(Component, _extends({
101
+ return renderDropdownItem(_extends({
109
102
  ref: ref,
110
- role: "separator",
103
+ role: 'separator',
111
104
  className: merge(prefix('divider'), className)
112
- }, restProps)));
105
+ }, restProps));
113
106
  }
114
107
 
115
108
  if (panel) {
116
- return renderDropdownItem( /*#__PURE__*/React.createElement(Component, _extends({
109
+ return renderDropdownItem(_extends({
117
110
  ref: ref,
118
111
  className: merge(prefix('panel'), className)
119
- }, restProps), children));
112
+ }, restProps));
120
113
  }
121
114
 
122
115
  if (navbar) {
@@ -172,12 +165,14 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
172
165
  dataAttributes['data-event-key-type'] = typeof eventKey;
173
166
  }
174
167
 
175
- return renderDropdownItem( /*#__PURE__*/React.createElement(Component, _extends({
168
+ return renderDropdownItem(_extends({
176
169
  ref: mergeRefs(ref, menuitemRef),
177
170
  className: classes
178
- }, menuitem, dataAttributes, restProps), icon && /*#__PURE__*/React.cloneElement(icon, {
179
- className: prefix('menu-icon')
180
- }), children));
171
+ }, menuitem, dataAttributes, restProps, {
172
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
173
+ className: prefix('menu-icon')
174
+ }), children)
175
+ }));
181
176
  });
182
177
  });
183
178
  DropdownItem.displayName = 'Dropdown.Item';
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType) => JSX.Element;
@@ -0,0 +1,18 @@
1
+ import React, { useCallback } from 'react';
2
+ export function useRenderDropdownItem(Component) {
3
+ return useCallback(function (props, OverrideComponent) {
4
+ if (Component === 'li') {
5
+ if (OverrideComponent) {
6
+ return /*#__PURE__*/React.createElement("li", {
7
+ role: "none presentation"
8
+ }, /*#__PURE__*/React.createElement(OverrideComponent, props));
9
+ }
10
+
11
+ return /*#__PURE__*/React.createElement(Component, props);
12
+ }
13
+
14
+ return /*#__PURE__*/React.createElement("li", {
15
+ role: "none presentation"
16
+ }, /*#__PURE__*/React.createElement(Component, props));
17
+ }, [Component]);
18
+ }
@@ -9,6 +9,7 @@ import Ripple from '../Ripple';
9
9
  import SafeAnchor from '../SafeAnchor';
10
10
  import NavContext from '../Nav/NavContext';
11
11
  import DropdownContext from '../Dropdown/DropdownContext';
12
+ import { useRenderDropdownItem } from '../Dropdown/useRenderDropdownItem';
12
13
 
13
14
  /**
14
15
  * Tree View Node
@@ -59,34 +60,39 @@ var SidenavDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
59
60
  var menuitemEventHandlers = {
60
61
  onClick: createChainedFunction(handleClick, onClick)
61
62
  };
63
+ var renderDropdownItem = useRenderDropdownItem(Component);
62
64
 
63
65
  if (divider) {
64
- return /*#__PURE__*/React.createElement(Component, _extends({
66
+ return renderDropdownItem(_extends({
65
67
  ref: ref,
66
- role: "separator",
68
+ role: 'separator',
67
69
  style: style,
68
70
  className: merge(prefix('divider'), className)
69
71
  }, rest));
70
72
  }
71
73
 
72
74
  if (panel) {
73
- return /*#__PURE__*/React.createElement(Component, _extends({
75
+ return renderDropdownItem(_extends({
74
76
  ref: ref,
75
- role: "none presentation",
77
+ role: 'none presentation',
76
78
  style: style,
77
79
  className: merge(prefix('panel'), className)
78
- }, rest), children);
80
+ }, rest, {
81
+ children: children
82
+ }));
79
83
  }
80
84
 
81
- return /*#__PURE__*/React.createElement(SafeAnchor, _extends({
85
+ return renderDropdownItem(_extends({
82
86
  ref: ref
83
87
  }, rest, {
84
88
  style: style,
85
89
  className: classes,
86
- "aria-current": selected || undefined
87
- }, menuitemEventHandlers), icon && /*#__PURE__*/React.cloneElement(icon, {
88
- className: prefix('menu-icon')
89
- }), children, /*#__PURE__*/React.createElement(Ripple, null));
90
+ 'aria-current': selected || undefined
91
+ }, menuitemEventHandlers, {
92
+ children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
93
+ className: prefix('menu-icon')
94
+ }), children, /*#__PURE__*/React.createElement(Ripple, null))
95
+ }), SafeAnchor);
90
96
  });
91
97
  SidenavDropdownItem.displayName = 'Sidenav.Dropdown.Item';
92
98
  SidenavDropdownItem.propTypes = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.2.0",
3
+ "version": "5.2.1",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",