@@ -173,7 +173,10 @@ class CheckboxTree extends React.Component {
173173 const flatNode = this . flatNodes [ node . value ] ;
174174
175175 if ( flatNode . isLeaf || noCascade ) {
176- if ( node . disabled ) return ;
176+ if ( node . disabled ) {
177+ return ;
178+ }
179+
177180 // Set the check status of a leaf node or an uncoupled parent
178181 this . toggleNode ( node . value , 'checked' , isChecked ) ;
179182 } else {
@@ -188,20 +191,23 @@ class CheckboxTree extends React.Component {
188191 this . flatNodes [ nodeValue ] [ key ] = toggleValue ;
189192 }
190193
191- flattenNodes ( nodes , parentNode = { } ) {
194+ flattenNodes ( nodes , parent = { } ) {
192195 if ( ! Array . isArray ( nodes ) || nodes . length === 0 ) {
193196 return ;
194197 }
195198
199+ const { disabled, noCascade } = this . props ;
200+
196201 nodes . forEach ( ( node ) => {
197202 const isParent = this . nodeHasChildren ( node ) ;
198203
199204 this . flatNodes [ node . value ] = {
205+ self : node ,
206+ parent,
200207 isParent,
201208 isLeaf : ! isParent ,
202- parent : parentNode ,
203- self : node ,
204209 showCheckbox : node . showCheckbox !== undefined ? node . showCheckbox : true ,
210+ disabled : this . getDisabledState ( node , parent , disabled , noCascade ) ,
205211 } ;
206212 this . flattenNodes ( node . children , node ) ;
207213 } ) ;
@@ -247,7 +253,6 @@ class CheckboxTree extends React.Component {
247253
248254 renderTreeNodes ( nodes , parent = { } ) {
249255 const {
250- disabled,
251256 expandDisabled,
252257 expandOnClick,
253258 icons,
@@ -265,7 +270,6 @@ class CheckboxTree extends React.Component {
265270 const key = `${ node . value } ` ;
266271 const flatNode = this . flatNodes [ node . value ] ;
267272 const children = flatNode . isParent ? this . renderTreeNodes ( node . children , node ) : null ;
268- const nodeDisabled = this . getDisabledState ( node , parent , disabled , noCascade ) ;
269273
270274 // Get the check state after all children check states are determined
271275 flatNode . checkState = this . getShallowCheckState ( node , noCascade ) ;
@@ -285,7 +289,7 @@ class CheckboxTree extends React.Component {
285289 key = { key }
286290 checked = { flatNode . checkState }
287291 className = { node . className }
288- disabled = { nodeDisabled }
292+ disabled = { flatNode . disabled }
289293 expandDisabled = { expandDisabled }
290294 expandOnClick = { expandOnClick }
291295 expanded = { flatNode . expanded }
0 commit comments