File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -42,7 +42,10 @@ function SearchTypeMenuPopover({queryJSON}: SearchTypeMenuNarrowProps) {
4242 scrollContainerStyle = { styles . pv0 }
4343 />
4444 ) }
45- < DeleteConfirmModal />
45+ { /* DeleteConfirmModal is a stable JSX element returned by the hook.
46+ Returning the element directly keeps the component identity across re-renders so React
47+ can play its exit animation instead of removing it instantly. */ }
48+ { DeleteConfirmModal }
4649 </ >
4750 ) ;
4851}
Original file line number Diff line number Diff line change @@ -32,20 +32,18 @@ export default function useDeleteSavedSearch() {
3232 }
3333 } ;
3434
35- function DeleteConfirmModal ( ) {
36- return (
37- < ConfirmModal
38- title = { translate ( 'search.deleteSavedSearch' ) }
39- onConfirm = { handleDelete }
40- onCancel = { ( ) => setIsDeleteModalVisible ( false ) }
41- isVisible = { isDeleteModalVisible }
42- prompt = { translate ( 'search.deleteSavedSearchConfirm' ) }
43- confirmText = { translate ( 'common.delete' ) }
44- cancelText = { translate ( 'common.cancel' ) }
45- danger
46- />
47- ) ;
48- }
35+ const DeleteConfirmModal = (
36+ < ConfirmModal
37+ title = { translate ( 'search.deleteSavedSearch' ) }
38+ onConfirm = { handleDelete }
39+ onCancel = { ( ) => setIsDeleteModalVisible ( false ) }
40+ isVisible = { isDeleteModalVisible }
41+ prompt = { translate ( 'search.deleteSavedSearchConfirm' ) }
42+ confirmText = { translate ( 'common.delete' ) }
43+ cancelText = { translate ( 'common.cancel' ) }
44+ danger
45+ />
46+ ) ;
4947
5048 return { showDeleteModal, DeleteConfirmModal} ;
5149}
Original file line number Diff line number Diff line change @@ -225,7 +225,10 @@ function SearchTypeMenu({queryJSON}: SearchTypeMenuProps) {
225225 { section . translationPath === 'search.savedSearchesMenuItemTitle' ? (
226226 < >
227227 { renderSavedSearchesSection ( savedSearchesMenuItems ) }
228- < DeleteConfirmModal />
228+ { /* DeleteConfirmModal is a stable JSX element returned by the hook.
229+ Returning the element directly keeps the component identity across re-renders so React
230+ can play its exit animation instead of removing it instantly. */ }
231+ { DeleteConfirmModal }
229232 </ >
230233 ) : (
231234 < >
You can’t perform that action at this time.
0 commit comments