From 829742b2399b2fb9e20054a2532c052d09f7f016 Mon Sep 17 00:00:00 2001 From: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com> Date: Thu, 6 May 2021 08:18:39 +0100 Subject: [PATCH 01/11] fix: reduced portal zindex --- app/client/src/index.css | 2 +- app/client/src/widgets/ModalWidget.tsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/client/src/index.css b/app/client/src/index.css index 2ce8e9f6b7..9324c48787 100755 --- a/app/client/src/index.css +++ b/app/client/src/index.css @@ -60,7 +60,7 @@ div.bp3-popover-arrow { } .bp3-portal { - z-index: 10; + z-index: 2; } .bp3-popover .bp3-input { diff --git a/app/client/src/widgets/ModalWidget.tsx b/app/client/src/widgets/ModalWidget.tsx index 07cada407e..81b89bfffe 100644 --- a/app/client/src/widgets/ModalWidget.tsx +++ b/app/client/src/widgets/ModalWidget.tsx @@ -124,6 +124,7 @@ export class ModalWidget extends BaseWidget { onClose={this.closeModal} scrollContents={!!this.props.shouldScrollContents} width={this.getModalWidth()} + zIndex={3} > {content} From 00669d9b8e2d43319e241a0378a5ba7ca1dbd45f Mon Sep 17 00:00:00 2001 From: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com> Date: Fri, 7 May 2021 08:35:00 +0100 Subject: [PATCH 02/11] fix: move dropdown options to portal --- app/client/src/components/designSystems/appsmith/Dropdown.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/client/src/components/designSystems/appsmith/Dropdown.tsx b/app/client/src/components/designSystems/appsmith/Dropdown.tsx index ecade3fff9..4a4dc958c0 100644 --- a/app/client/src/components/designSystems/appsmith/Dropdown.tsx +++ b/app/client/src/components/designSystems/appsmith/Dropdown.tsx @@ -50,12 +50,14 @@ const selectStyles = { padding: "5px", }), indicatorSeparator: () => ({}), + menuPortal: (styles: any) => ({ ...styles, zIndex: 1000 }), }; export function BaseDropdown(props: DropdownProps) { const { input, customSelectStyles } = props; return ( Date: Wed, 26 May 2021 14:56:40 +0100 Subject: [PATCH 10/11] fix: Add zIndex Layers of Dropdown and Modal --- app/client/src/constants/Layers.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/client/src/constants/Layers.tsx b/app/client/src/constants/Layers.tsx index 3a4d22a132..b2438307f4 100644 --- a/app/client/src/constants/Layers.tsx +++ b/app/client/src/constants/Layers.tsx @@ -11,6 +11,7 @@ export enum Indices { Layer7, Layer8, Layer9, + Layer21 = 21, LayerMax = 99999, } @@ -22,6 +23,10 @@ export const Layers = { positionedWidget: Indices.Layer1, // Modal needs to higher than other widgets. modalWidget: Indices.Layer2, + // Dropdown portaled to the canvas + dropdownWidget: Indices.Layer2, + // dropdown portaled to Modal Container with higher index than Overlay + dropdownModalWidget: Indices.Layer21, // Layers when dragging animatedSnappingDropZone: Indices.Layer2, From b0c7c1c5ca3ed376f3128307f9aa7140417a56fa Mon Sep 17 00:00:00 2001 From: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:40:41 +0100 Subject: [PATCH 11/11] fix: options display in deploy view --- .../blueprint/DropdownComponent.tsx | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx b/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx index 0e6e65bb8a..93c4700c18 100644 --- a/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx +++ b/app/client/src/components/designSystems/blueprint/DropdownComponent.tsx @@ -229,12 +229,28 @@ const StyledMultiDropDown = styled(MultiDropDown)<{ } } `; +interface DropDownComponentState { + portalContainer: HTMLElement; +} -class DropDownComponent extends React.Component { +class DropDownComponent extends React.Component< + DropDownComponentProps, + DropDownComponentState +> { private _menu = React.createRef(); + constructor(props: DropDownComponentProps) { + super(props); + this.state = { portalContainer: this._menu.current as HTMLElement }; + } + componentDidMount() { + this.setState({ + portalContainer: this.props.getDropdownPosition(this._menu.current), + }); + } render() { const { options, selectedIndexArr } = this.props; + const { portalContainer } = this.state; const selectedItems = selectedIndexArr ? _.map(selectedIndexArr, (index) => options[index]) : []; @@ -302,9 +318,7 @@ class DropDownComponent extends React.Component { popoverProps={{ minimal: true, usePortal: true, - portalContainer: this.props.getDropdownPosition( - this._menu.current, - ), + portalContainer, modifiers: { preventOverflow: { enabled: false,