@@ -109,7 +109,6 @@ class CheckboxTree extends React.Component {
109109 this . combineMemorized = memoize ( ( icons1 , icons2 ) => ( { ...icons1 , ...icons2 } ) ) . bind ( this ) ;
110110 }
111111
112- // eslint-disable-next-line react/sort-comp
113112 static getDerivedStateFromProps ( newProps , prevState ) {
114113 const { model, prevProps } = prevState ;
115114 const { disabled, id, nodes } = newProps ;
@@ -138,20 +137,22 @@ class CheckboxTree extends React.Component {
138137
139138 onCheck ( nodeInfo ) {
140139 const { checkModel, noCascade, onCheck } = this . props ;
141- const model = this . state . model . clone ( ) ;
142- const node = model . getNode ( nodeInfo . value ) ;
140+ const { model } = this . state ;
141+ const newModel = model . clone ( ) ;
142+ const node = newModel . getNode ( nodeInfo . value ) ;
143143
144- model . toggleChecked ( nodeInfo , nodeInfo . checked , checkModel , noCascade ) ;
145- onCheck ( model . serializeList ( 'checked' ) , { ...node , ...nodeInfo } ) ;
144+ newModel . toggleChecked ( nodeInfo , nodeInfo . checked , checkModel , noCascade ) ;
145+ onCheck ( newModel . serializeList ( 'checked' ) , { ...node , ...nodeInfo } ) ;
146146 }
147147
148148 onExpand ( nodeInfo ) {
149149 const { onExpand } = this . props ;
150- const model = this . state . model . clone ( ) ;
151- const node = model . getNode ( nodeInfo . value ) ;
150+ const { model } = this . state ;
151+ const newModel = model . clone ( ) ;
152+ const node = newModel . getNode ( nodeInfo . value ) ;
152153
153- model . toggleNode ( nodeInfo . value , 'expanded' , nodeInfo . expanded ) ;
154- onExpand ( model . serializeList ( 'expanded' ) , { ...node , ...nodeInfo } ) ;
154+ newModel . toggleNode ( nodeInfo . value , 'expanded' , nodeInfo . expanded ) ;
155+ onExpand ( newModel . serializeList ( 'expanded' ) , { ...node , ...nodeInfo } ) ;
155156 }
156157
157158 onNodeClick ( nodeInfo ) {
@@ -172,16 +173,18 @@ class CheckboxTree extends React.Component {
172173
173174 expandAllNodes ( expand = true ) {
174175 const { onExpand } = this . props ;
176+ const { model } = this . state ;
175177
176178 onExpand (
177- this . state . model . clone ( )
179+ model . clone ( )
178180 . expandAllNodes ( expand )
179181 . serializeList ( 'expanded' ) ,
180182 ) ;
181183 }
182184
183185 determineShallowCheckState ( node , noCascade ) {
184- const flatNode = this . state . model . getNode ( node . value ) ;
186+ const { model } = this . state ;
187+ const flatNode = model . getNode ( node . value ) ;
185188
186189 if ( flatNode . isLeaf || noCascade || node . children . length === 0 ) {
187190 // Note that an empty parent node tracks its own state
@@ -200,14 +203,18 @@ class CheckboxTree extends React.Component {
200203 }
201204
202205 isEveryChildChecked ( node ) {
206+ const { model } = this . state ;
207+
203208 return node . children . every (
204- ( child ) => this . state . model . getNode ( child . value ) . checkState === 1 ,
209+ ( child ) => model . getNode ( child . value ) . checkState === 1 ,
205210 ) ;
206211 }
207212
208213 isSomeChildChecked ( node ) {
214+ const { model } = this . state ;
215+
209216 return node . children . some (
210- ( child ) => this . state . model . getNode ( child . value ) . checkState > 0 ,
217+ ( child ) => model . getNode ( child . value ) . checkState > 0 ,
211218 ) ;
212219 }
213220
@@ -258,11 +265,11 @@ class CheckboxTree extends React.Component {
258265 expanded = { flatNode . expanded }
259266 icon = { node . icon }
260267 icons = { this . combineMemorized ( defaultIcons , icons ) }
268+ isLeaf = { flatNode . isLeaf }
269+ isParent = { flatNode . isParent }
261270 label = { node . label }
262271 lang = { lang }
263272 optimisticToggle = { optimisticToggle }
264- isLeaf = { flatNode . isLeaf }
265- isParent = { flatNode . isParent }
266273 showCheckbox = { showCheckbox }
267274 showNodeIcon = { showNodeIcon }
268275 title = { showNodeTitle ? node . title || node . label : node . title }
0 commit comments