Skip to content

Commit d971e14

Browse files
committed
Disable the entire overlay instead of just the onClick so that it doesn't confuse users
1 parent 3c4bc69 commit d971e14

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,10 @@ export interface MosaicWindowProps<T extends MosaicKey> {
258258
* A callback that triggers when a user toggles the additional controls
259259
*/
260260
onAdditionalControlsToggle?: (toggle: boolean) => void;
261+
/**
262+
* Disables the overlay that blocks interaction with the window when additional controls are open
263+
*/
264+
disableAdditionalControlsOverlay?: boolean;
261265
/**
262266
* Whether or not a user should be able to drag windows around
263267
*/

src/MosaicWindow.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export interface MosaicWindowProps<T extends MosaicKey> {
3333
additionalControls?: React.ReactNode;
3434
additionalControlButtonText?: string;
3535
onAdditionalControlsToggle?: (toggle: boolean) => void;
36-
closeAdditionalControlsOnClickBody?: boolean;
36+
disableAdditionalControlsOverlay?: boolean;
3737
draggable?: boolean;
3838
createNode?: CreateNode<T>;
3939
renderPreview?: (props: MosaicWindowProps<T>) => JSX.Element;
@@ -99,7 +99,7 @@ export class InternalMosaicWindow<T extends MosaicKey> extends React.Component<
9999
connectDropTarget,
100100
connectDragPreview,
101101
draggedMosaicId,
102-
closeAdditionalControlsOnClickBody,
102+
disableAdditionalControlsOverlay,
103103
} = this.props;
104104

105105
return (
@@ -114,11 +114,14 @@ export class InternalMosaicWindow<T extends MosaicKey> extends React.Component<
114114
>
115115
{this.renderToolbar()}
116116
<div className="mosaic-window-body">{this.props.children}</div>
117-
<div className="mosaic-window-body-overlay" onClick={() => {
118-
if (closeAdditionalControlsOnClickBody !== false) {
119-
this.setAdditionalControlsOpen(false);
120-
}
121-
}} />
117+
{!disableAdditionalControlsOverlay && (
118+
<div
119+
className="mosaic-window-body-overlay"
120+
onClick={() => {
121+
this.setAdditionalControlsOpen(false);
122+
}}
123+
/>
124+
)}
122125
<div className="mosaic-window-additional-actions-bar">{additionalControls}</div>
123126
{connectDragPreview(renderPreview!(this.props))}
124127
<div className="drop-target-container">

0 commit comments

Comments
 (0)