@@ -23,6 +23,7 @@ export default function DeletePopUpForOrphanNodes({
2323} ) {
2424 const [ orphanNodes , setOrphanNodes ] = useState < orphanNodeProps [ ] > ( [ ] ) ;
2525 const [ selectedOrphanNodesForDeletion , setselectedOrphanNodesForDeletion ] = useState < string [ ] > ( [ ] ) ;
26+ const [ selectedAll , setselectedAll ] = useState < boolean > ( false )
2627 const [ isLoading , setLoading ] = useState < boolean > ( false ) ;
2728 const { userCredentials } = useCredentials ( ) ;
2829
@@ -37,6 +38,7 @@ export default function DeletePopUpForOrphanNodes({
3738 setOrphanNodes ( apiresponse . data . data ) ;
3839 }
3940 } catch ( error ) {
41+ setLoading ( false )
4042 console . log ( error ) ;
4143 }
4244 } ) ( ) ;
@@ -46,8 +48,11 @@ export default function DeletePopUpForOrphanNodes({
4648 const onChangeHandler = useCallback ( ( isChecked : boolean , id : string ) => {
4749 if ( isChecked ) {
4850 setselectedOrphanNodesForDeletion ( ( prev ) => [ ...prev , id ] ) ;
51+ setOrphanNodes ( ( prev ) => prev . map ( ( n ) => ( { ...n , checked : n . e . elementId === id ? true : n . checked } ) ) ) ;
4952 } else {
53+ setselectedAll ( false )
5054 setselectedOrphanNodesForDeletion ( ( prev ) => prev . filter ( ( s ) => s === id ) ) ;
55+ setOrphanNodes ( ( prev ) => prev . map ( ( n ) => ( { ...n , checked : n . e . elementId === id ? false : n . checked } ) ) ) ;
5156 }
5257 } , [ ] ) ;
5358
@@ -73,11 +78,14 @@ export default function DeletePopUpForOrphanNodes({
7378 < Checkbox
7479 label = 'Select All Nodes'
7580 className = 'ml-4'
81+ checked = { selectedAll }
7682 onChange = { ( e ) => {
7783 if ( e . target . checked ) {
84+ setselectedAll ( true )
7885 setOrphanNodes ( ( prev ) => prev . map ( ( n ) => ( { ...n , checked : true } ) ) ) ;
7986 setselectedOrphanNodesForDeletion ( orphanNodes . map ( ( n ) => n . e . elementId ) ) ;
8087 } else {
88+ setselectedAll ( false )
8189 setOrphanNodes ( ( prev ) => prev . map ( ( n ) => ( { ...n , checked : false } ) ) ) ;
8290 setselectedOrphanNodesForDeletion ( [ ] ) ;
8391 }
@@ -95,7 +103,7 @@ export default function DeletePopUpForOrphanNodes({
95103 < ListItemIcon >
96104 < Checkbox
97105 aria-label = 'selection checkbox'
98- checked = { selectedOrphanNodesForDeletion . includes ( n . e . elementId ) }
106+ checked = { n . checked }
99107 onChange = { ( e ) => onChangeHandler ( e . target . checked , n . e . elementId ) }
100108 tabIndex = { - 1 }
101109 />
@@ -148,6 +156,7 @@ export default function DeletePopUpForOrphanNodes({
148156 < Button
149157 fill = 'outlined'
150158 size = 'large'
159+ disabled = { loading }
151160 onClick = { ( ) => {
152161 deleteCloseHandler ( ) ;
153162 setselectedOrphanNodesForDeletion ( [ ] ) ;
0 commit comments