diff --git a/frontend/src/AppBuilder/AppCanvas/Container.jsx b/frontend/src/AppBuilder/AppCanvas/Container.jsx index fcc0a95d4e..c320c3f0cb 100644 --- a/frontend/src/AppBuilder/AppCanvas/Container.jsx +++ b/frontend/src/AppBuilder/AppCanvas/Container.jsx @@ -5,7 +5,12 @@ import WidgetWrapper from './WidgetWrapper'; import useStore from '@/AppBuilder/_stores/store'; import { shallow } from 'zustand/shallow'; import { useDrop } from 'react-dnd'; -import { addChildrenWidgetsToParent, addNewWidgetToTheEditor, computeViewerBackgroundColor } from './appCanvasUtils'; +import { + addChildrenWidgetsToParent, + addNewWidgetToTheEditor, + computeViewerBackgroundColor, + getSubContainerWidthAfterPadding, +} from './appCanvasUtils'; import { CANVAS_WIDTHS, NO_OF_GRIDS, @@ -104,12 +109,7 @@ export const Container = React.memo( if (canvasWidth !== undefined) { if (componentType === 'Listview' && listViewMode == 'grid') return canvasWidth / columns - 2; if (id === 'canvas') return canvasWidth; - if (componentType === 'Container' || componentType === 'Form') { - return ( - canvasWidth - (2 * CONTAINER_FORM_CANVAS_PADDING + 2 * SUBCONTAINER_CANVAS_BORDER_WIDTH + 2 * BOX_PADDING) - ); - } - return canvasWidth - 2; // Need to update this 2 to correct value for other subcontainers + return getSubContainerWidthAfterPadding(canvasWidth, componentType, id); } return realCanvasRef?.current?.offsetWidth; } diff --git a/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js b/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js index e6a789fba0..5725baf7ed 100644 --- a/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js +++ b/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js @@ -23,3 +23,7 @@ export const CONTAINER_FORM_CANVAS_PADDING = 7; export const SUBCONTAINER_CANVAS_BORDER_WIDTH = 1; export const BOX_PADDING = 2; + +export const TAB_CANVAS_PADDING = 7.5; + +export const MODAL_CANVAS_PADDING = 5; diff --git a/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js b/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js index b5325c0801..8d5f2dfe62 100644 --- a/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js +++ b/frontend/src/AppBuilder/AppCanvas/appCanvasUtils.js @@ -6,7 +6,16 @@ import { toast } from 'react-hot-toast'; import _, { debounce } from 'lodash'; import { useGridStore } from '@/_stores/gridStore'; import { findHighestLevelofSelection } from './Grid/gridUtils'; -import { CANVAS_WIDTHS, NO_OF_GRIDS, WIDGETS_WITH_DEFAULT_CHILDREN } from './appCanvasConstants'; +import { + CANVAS_WIDTHS, + NO_OF_GRIDS, + WIDGETS_WITH_DEFAULT_CHILDREN, + CONTAINER_FORM_CANVAS_PADDING, + SUBCONTAINER_CANVAS_BORDER_WIDTH, + BOX_PADDING, + TAB_CANVAS_PADDING, + MODAL_CANVAS_PADDING, +} from './appCanvasConstants'; export function snapToGrid(canvasWidth, x, y) { const gridX = canvasWidth / 43; @@ -712,3 +721,25 @@ export const getSubContainerIdWithSlots = (parentId) => { } return cleanParentId; }; + +export const getSubContainerWidthAfterPadding = (canvasWidth, componentType, componentId) => { + let padding = 2; //Need to update this 2 to correct value for other subcontainers + if (componentType === 'Container' || componentType === 'Form') { + padding = 2 * CONTAINER_FORM_CANVAS_PADDING + 2 * SUBCONTAINER_CANVAS_BORDER_WIDTH + 2 * BOX_PADDING; + } + if (componentType === 'Tabs') { + padding = 2 * TAB_CANVAS_PADDING + 2 * SUBCONTAINER_CANVAS_BORDER_WIDTH + 2 * BOX_PADDING; + } + if (componentType === 'ModalV2') { + const isModalHeader = componentId?.includes('header'); + if (isModalHeader) { + const isModalHeaderCloseBtnEnabled = !useStore.getState().getResolvedComponent(componentId)?.properties + ?.hideCloseButton; + console.log('isModalHeaderCloseBtnEnabled', isModalHeaderCloseBtnEnabled); + padding = 2 * (MODAL_CANVAS_PADDING + (isModalHeaderCloseBtnEnabled ? 56 : 0)); + } else { + padding = 2 * MODAL_CANVAS_PADDING; + } + } + return canvasWidth - padding; +}; diff --git a/frontend/src/AppBuilder/Widgets/ModalV2/Components/Footer.jsx b/frontend/src/AppBuilder/Widgets/ModalV2/Components/Footer.jsx index e25027ce33..8ff4c0cbb1 100644 --- a/frontend/src/AppBuilder/Widgets/ModalV2/Components/Footer.jsx +++ b/frontend/src/AppBuilder/Widgets/ModalV2/Components/Footer.jsx @@ -19,6 +19,7 @@ export const ModalFooter = React.memo(({ id, isDisabled, customStyles, darkMode, overflowX: 'hidden', overflowY: isDisabled ? 'hidden' : 'auto', }} + componentType="ModalV2" /> {isDisabled && (
{isDisabled && ( diff --git a/frontend/src/AppBuilder/Widgets/ModalV2/Components/Modal.jsx b/frontend/src/AppBuilder/Widgets/ModalV2/Components/Modal.jsx index 25796a9951..2615ca3d5c 100644 --- a/frontend/src/AppBuilder/Widgets/ModalV2/Components/Modal.jsx +++ b/frontend/src/AppBuilder/Widgets/ModalV2/Components/Modal.jsx @@ -105,9 +105,10 @@ export const ModalWidget = ({ ...restProps }) => {