@@ -45,6 +45,7 @@ interface MediaSelectionScreenState {
4545
4646class MediaSelectionScreen extends React . PureComponent < MediaSelectionScreenProps , MediaSelectionScreenState > {
4747 notificationHandler : NeosNotification ;
48+ containerRef = createRef < HTMLDivElement > ( ) ;
4849
4950 constructor ( props : MediaSelectionScreenProps ) {
5051 super ( props ) ;
@@ -69,15 +70,19 @@ class MediaSelectionScreen extends React.PureComponent<MediaSelectionScreenProps
6970 initialLeftSideBarHiddenState : isLeftSideBarHidden ,
7071 initialNodeCreationDialogOpenState : isNodeCreationDialogOpen ,
7172 } ) ;
72- if ( ! isLeftSideBarHidden && ! isNodeCreationDialogOpen ) {
73+ if ( ! isLeftSideBarHidden && ! isNodeCreationDialogOpen && ! this . isInDialog ( ) ) {
7374 toggleSidebar ( ) ;
7475 }
7576 }
7677
7778 componentWillUnmount ( ) {
7879 const { isLeftSideBarHidden, toggleSidebar } = this . props ;
7980 const { initialLeftSideBarHiddenState, initialNodeCreationDialogOpenState } = this . state ;
80- if ( initialLeftSideBarHiddenState !== isLeftSideBarHidden && ! initialNodeCreationDialogOpenState ) {
81+ if (
82+ initialLeftSideBarHiddenState !== isLeftSideBarHidden &&
83+ ! initialNodeCreationDialogOpenState &&
84+ ! this . isInDialog ( )
85+ ) {
8186 toggleSidebar ( ) ;
8287 }
8388 }
@@ -138,16 +143,20 @@ class MediaSelectionScreen extends React.PureComponent<MediaSelectionScreenProps
138143 } ;
139144 } ;
140145
146+ isInDialog = ( ) => {
147+ return this . state . initialNodeCreationDialogOpenState || ! ! this . containerRef . current ?. closest ( '[role="dialog"]' ) ;
148+ } ;
149+
141150 render ( ) {
142151 const { onComplete } = this . props ;
143152 const { dummyImage } = this . getConfig ( ) ;
144- const containerRef = createRef < HTMLDivElement > ( ) ;
145- const isInNodeCreationDialog = this . state . initialNodeCreationDialogOpenState ;
153+ const isInDialog = this . isInDialog ( ) ;
154+ const { initialNodeCreationDialogOpenState } = this . state ;
146155
147156 return (
148157 < div
149158 className = { cx ( classes . mediaSelectionScreen , {
150- [ classes . isInNodeCreationDialog ] : isInNodeCreationDialog ,
159+ [ classes . isInDialog ] : isInDialog ,
151160 } ) }
152161 >
153162 < MediaApplicationWrapper
@@ -160,8 +169,9 @@ class MediaSelectionScreen extends React.PureComponent<MediaSelectionScreenProps
160169 dummyImage = { dummyImage }
161170 onAssetSelection = { onComplete }
162171 selectionMode
163- isInNodeCreationDialog = { isInNodeCreationDialog }
164- containerRef = { containerRef }
172+ isInNodeCreationDialog = { initialNodeCreationDialogOpenState }
173+ isInDialog = { isInDialog }
174+ containerRef = { this . containerRef }
165175 >
166176 < AssetCollectionTreeDndProvider >
167177 < App />
0 commit comments