From d6596012a645190fcd17b1848f6a974358f86cf7 Mon Sep 17 00:00:00 2001 From: Damien Pellier Date: Mon, 27 Apr 2020 10:53:34 +0200 Subject: [PATCH 1/3] fix(tree): prevent all node check on filter (#1) --- src/js/CheckboxTree.js | 4 ++++ src/js/NodeModel.js | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/js/CheckboxTree.js b/src/js/CheckboxTree.js index 2e2a99ae..30f98099 100644 --- a/src/js/CheckboxTree.js +++ b/src/js/CheckboxTree.js @@ -193,6 +193,10 @@ class CheckboxTree extends React.Component { } isEveryChildChecked(node) { + if (!node.children || node.children.length === 0) { + return this.state.model.getNode(node.value).checked; + } + return node.children.every( (child) => this.state.model.getNode(child.value).checkState === 1, ); diff --git a/src/js/NodeModel.js b/src/js/NodeModel.js index 82797d56..4d2f2450 100644 --- a/src/js/NodeModel.js +++ b/src/js/NodeModel.js @@ -57,7 +57,7 @@ class NodeModel { } nodeHasChildren(node) { - return Array.isArray(node.children); + return Array.isArray(node.children) && node.children.length > 0; } getDisabledState(node, parent, disabledProp, noCascade) { @@ -163,6 +163,10 @@ class NodeModel { } isEveryChildChecked(node) { + if (!node.children || node.children.length === 0) { + return this.getNode(node.value).checked; + } + return node.children.every((child) => this.getNode(child.value).checked); } From c70cbd2ebe60293eb9ef6f1ebb432e3c3c390b4b Mon Sep 17 00:00:00 2001 From: Damien Pellier Date: Mon, 27 Apr 2020 11:09:48 +0200 Subject: [PATCH 2/3] fix(dependency): use nanoid v3 import --- src/js/CheckboxTree.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/CheckboxTree.js b/src/js/CheckboxTree.js index 30f98099..3d67a8af 100644 --- a/src/js/CheckboxTree.js +++ b/src/js/CheckboxTree.js @@ -1,6 +1,6 @@ import classNames from 'classnames'; import isEqual from 'lodash/isEqual'; -import nanoid from 'nanoid'; +import { nanoid } from 'nanoid'; import PropTypes from 'prop-types'; import React from 'react'; From e2cc264d6a2569333b8035e88d671819f4551904 Mon Sep 17 00:00:00 2001 From: Maxwell Kendall Date: Tue, 5 May 2020 02:41:00 -0400 Subject: [PATCH 3/3] fixing test (#2) --- test/CheckboxTree.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/CheckboxTree.js b/test/CheckboxTree.js index 4c7f3c26..43576441 100644 --- a/test/CheckboxTree.js +++ b/test/CheckboxTree.js @@ -351,8 +351,8 @@ describe('', () => { />, ); - assert.equal(true, wrapper.find(TreeNode).prop('isParent')); - assert.equal(false, wrapper.find(TreeNode).prop('isLeaf')); + assert.equal(false, wrapper.find(TreeNode).prop('isParent')); + assert.equal(true, wrapper.find(TreeNode).prop('isLeaf')); }); it('should render a node with a non-empty "children" array as a parent', () => {