@@ -383,24 +383,12 @@ export default function DirectoryContent() {
383
383
[ childrenMetadata , dispatch , getStudyUrl , handleError , intl , selectedDirectory ?. elementUuid ]
384
384
) ;
385
385
386
- useEffect ( ( ) => {
387
- if ( ! selectedDirectory ?. elementUuid ) {
388
- return ;
389
- }
390
- setIsMissingDataAfterDirChange ( true ) ;
391
- setCheckedRows ( [ ] ) ;
392
- } , [ selectedDirectory ?. elementUuid ] ) ;
393
-
394
- useEffect ( ( ) => {
395
- setIsMissingDataAfterDirChange ( false ) ;
396
- } , [ childrenMetadata ] ) ; // this will change after switching selectedDirectory
397
-
398
386
const isActiveElementUnchecked = useMemo (
399
387
( ) => activeElement && ! checkedRows . find ( ( children ) => children . elementUuid === activeElement . elementUuid ) ,
400
388
[ activeElement , checkedRows ]
401
389
) ;
402
390
403
- const handleRowSelected = useCallback ( ( ) => {
391
+ const updateCheckedRows = useCallback ( ( ) => {
404
392
setCheckedRows ( computeCheckedElements ( gridRef , childrenMetadata ) ) ;
405
393
} , [ childrenMetadata ] ) ;
406
394
@@ -480,7 +468,7 @@ export default function DirectoryContent() {
480
468
gridRef = { gridRef }
481
469
rows = { rows }
482
470
handleCellContextualMenu = { onCellContextMenu }
483
- handleRowSelected = { handleRowSelected }
471
+ handleRowSelected = { updateCheckedRows }
484
472
handleCellClick = { handleCellClick }
485
473
colDef = { getColumnsDefinition ( childrenMetadata , intl ) }
486
474
getRowStyle = { getRowStyle }
@@ -606,6 +594,21 @@ export default function DirectoryContent() {
606
594
}
607
595
} ;
608
596
597
+ useEffect ( ( ) => {
598
+ if ( ! selectedDirectory ?. elementUuid ) {
599
+ return ;
600
+ }
601
+ setIsMissingDataAfterDirChange ( true ) ;
602
+ setCheckedRows ( [ ] ) ;
603
+ } , [ selectedDirectory ?. elementUuid ] ) ;
604
+
605
+ useEffect ( ( ) => {
606
+ setIsMissingDataAfterDirChange ( false ) ;
607
+ // update checkecRows ElementAttributes objects if metadata changed
608
+ // ex: when the user renames a selected element
609
+ updateCheckedRows ( ) ;
610
+ } , [ childrenMetadata , updateCheckedRows ] ) ; // this will change after switching selectedDirectory
611
+
609
612
return (
610
613
< >
611
614
{
@@ -640,7 +643,6 @@ export default function DirectoryContent() {
640
643
< ContentContextualMenu
641
644
activeElement = { activeElement }
642
645
selectedElements = { fullSelection }
643
- onUpdateSelectedElements = { setCheckedRows }
644
646
open = { openContentMenu }
645
647
openDialog = { openDialog }
646
648
setOpenDialog = { setOpenDialog }
0 commit comments