@@ -31,6 +31,7 @@ export const ColumnsModal: React.FC<{
3131 setColumnSizes : ( v : ColumnSizeMap ) => void ;
3232 id ?: string ;
3333} > = ( { id, isModalOpen, setModalOpen, columns, setColumns, setColumnSizes } ) => {
34+ const [ resetClicked , setResetClicked ] = React . useState < boolean > ( false ) ;
3435 const [ updatedColumns , setUpdatedColumns ] = React . useState < Column [ ] > ( [ ] ) ;
3536 const [ isSaveDisabled , setSaveDisabled ] = React . useState < boolean > ( true ) ;
3637 const [ isAllSelected , setAllSelected ] = React . useState < boolean > ( false ) ;
@@ -81,9 +82,9 @@ export const ColumnsModal: React.FC<{
8182 ) ;
8283
8384 const onReset = React . useCallback ( ( ) => {
84- setColumnSizes ( { } ) ;
85+ setResetClicked ( true ) ;
8586 setUpdatedColumns ( getDefaultColumns ( t ) ) ;
86- } , [ setColumnSizes , setUpdatedColumns , t ] ) ;
87+ } , [ setResetClicked , setUpdatedColumns , t ] ) ;
8788
8889 const onSelectAll = React . useCallback ( ( ) => {
8990 const result = [ ...updatedColumns ] ;
@@ -93,10 +94,18 @@ export const ColumnsModal: React.FC<{
9394 setUpdatedColumns ( result ) ;
9495 } , [ updatedColumns , setUpdatedColumns , isAllSelected ] ) ;
9596
97+ const onClose = React . useCallback ( ( ) => {
98+ setResetClicked ( false ) ;
99+ setModalOpen ( false ) ;
100+ } , [ setModalOpen ] ) ;
101+
96102 const onSave = React . useCallback ( ( ) => {
103+ if ( resetClicked ) {
104+ setColumnSizes ( { } ) ;
105+ }
97106 setColumns ( updatedColumns ) ;
98- setModalOpen ( false ) ;
99- } , [ updatedColumns , setColumns , setModalOpen ] ) ;
107+ onClose ( ) ;
108+ } , [ resetClicked , setColumns , updatedColumns , onClose , setColumnSizes ] ) ;
100109
101110 const draggableItems = updatedColumns . map ( ( column , i ) => (
102111 < Draggable key = { i } hasNoWrapper >
@@ -136,7 +145,7 @@ export const ColumnsModal: React.FC<{
136145 title = { t ( 'Manage columns' ) }
137146 isOpen = { isModalOpen }
138147 scrollable = { true }
139- onClose = { ( ) => setModalOpen ( false ) }
148+ onClose = { onClose }
140149 description = {
141150 < TextContent >
142151 < Text component = { TextVariants . p } >
@@ -153,10 +162,10 @@ export const ColumnsModal: React.FC<{
153162 < Button data-test = "columns-reset-button" key = "reset" variant = "link" onClick = { ( ) => onReset ( ) } >
154163 { t ( 'Restore default columns' ) }
155164 </ Button >
156- < Button data-test = "columns-cancel-button" key = "cancel" variant = "link" onClick = { ( ) => setModalOpen ( false ) } >
165+ < Button data-test = "columns-cancel-button" key = "cancel" variant = "link" onClick = { ( ) => onClose ( ) } >
157166 { t ( 'Cancel' ) }
158167 </ Button >
159- < Tooltip content = { t ( 'At least one column must be selected' ) } isVisible = { isSaveDisabled } >
168+ < Tooltip content = { t ( 'At least one column must be selected' ) } trigger = "" isVisible = { isSaveDisabled } >
160169 < Button
161170 data-test = "columns-save-button"
162171 isDisabled = { isSaveDisabled }
0 commit comments