@@ -33,6 +33,7 @@ export interface MosaicWindowProps<T extends MosaicKey> {
33
33
additionalControls ?: React . ReactNode ;
34
34
additionalControlButtonText ?: string ;
35
35
onAdditionalControlsToggle ?: ( toggle : boolean ) => void ;
36
+ disableAdditionalControlsOverlay ?: boolean ;
36
37
draggable ?: boolean ;
37
38
createNode ?: CreateNode < T > ;
38
39
renderPreview ?: ( props : MosaicWindowProps < T > ) => JSX . Element ;
@@ -98,6 +99,7 @@ export class InternalMosaicWindow<T extends MosaicKey> extends React.Component<
98
99
connectDropTarget,
99
100
connectDragPreview,
100
101
draggedMosaicId,
102
+ disableAdditionalControlsOverlay,
101
103
} = this . props ;
102
104
103
105
return (
@@ -112,7 +114,14 @@ export class InternalMosaicWindow<T extends MosaicKey> extends React.Component<
112
114
>
113
115
{ this . renderToolbar ( ) }
114
116
< div className = "mosaic-window-body" > { this . props . children } </ div >
115
- < div className = "mosaic-window-body-overlay" onClick = { ( ) => this . setAdditionalControlsOpen ( false ) } />
117
+ { ! disableAdditionalControlsOverlay && (
118
+ < div
119
+ className = "mosaic-window-body-overlay"
120
+ onClick = { ( ) => {
121
+ this . setAdditionalControlsOpen ( false ) ;
122
+ } }
123
+ />
124
+ ) }
116
125
< div className = "mosaic-window-additional-actions-bar" > { additionalControls } </ div >
117
126
{ connectDragPreview ( renderPreview ! ( this . props ) ) }
118
127
< div className = "drop-target-container" >
@@ -221,7 +230,9 @@ export class InternalMosaicWindow<T extends MosaicKey> extends React.Component<
221
230
return Promise . resolve ( createNode ! ( ...args ) ) . then ( ( node ) => mosaicActions . replaceWith ( path , node ) ) ;
222
231
} ;
223
232
224
- private setAdditionalControlsOpen = ( additionalControlsOpen : boolean ) => {
233
+ private setAdditionalControlsOpen = ( additionalControlsOpenOption : boolean | 'toggle' ) => {
234
+ const additionalControlsOpen =
235
+ additionalControlsOpenOption === 'toggle' ? ! this . state . additionalControlsOpen : additionalControlsOpenOption ;
225
236
this . setState ( { additionalControlsOpen } ) ;
226
237
this . props . onAdditionalControlsToggle ?.( additionalControlsOpen ) ;
227
238
} ;
0 commit comments