diff --git a/frontend/ee b/frontend/ee index 3b2d439f68..8ed7be478b 160000 --- a/frontend/ee +++ b/frontend/ee @@ -1 +1 @@ -Subproject commit 3b2d439f681f3879da6663f4c9b6d30deffc0380 +Subproject commit 8ed7be478b266e8b812ce1d3c43f2cb7e2ee3d07 diff --git a/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx b/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx index b48143f383..2cd94143c7 100644 --- a/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx +++ b/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx @@ -8,7 +8,13 @@ import './appCanvas.scss'; import useStore from '@/AppBuilder/_stores/store'; import { shallow } from 'zustand/shallow'; import { computeViewerBackgroundColor, getCanvasWidth } from './appCanvasUtils'; -import { NO_OF_GRIDS } from './appCanvasConstants'; +import { + LEFT_SIDEBAR_WIDTH, + NO_OF_GRIDS, + PAGES_SIDEBAR_WIDTH_COLLAPSED, + PAGES_SIDEBAR_WIDTH_EXPANDED, + RIGHT_SIDEBAR_WIDTH, +} from './appCanvasConstants'; import cx from 'classnames'; import FreezeVersionInfo from '@/AppBuilder/Header/FreezeVersionInfo'; import { computeCanvasContainerHeight } from '../_helpers/editorHelpers'; @@ -134,7 +140,7 @@ export const AppCanvas = ({ appId, isViewer = false, switchDarkMode, darkMode }) width: currentMode === 'edit' ? `calc(100% - 96px)` : '100%', alignItems: 'unset', justifyContent: 'unset', - borderRight: currentMode === 'edit' && isRightSidebarOpen && '299' + 'px solid', + borderRight: currentMode === 'edit' && isRightSidebarOpen && `300px solid ${canvasBgColor}`, padding: currentMode === 'edit' && '8px', paddingBottom: currentMode === 'edit' && '2px', }; @@ -152,15 +158,34 @@ export const AppCanvas = ({ appId, isViewer = false, switchDarkMode, darkMode }) const shouldAdjust = isSidebarOpen || (isRightSidebarOpen && currentMode === 'edit'); if (!shouldAdjust) return ''; - let offset; - if (isViewerSidebarPinned) { - offset = position === 'side' ? '352px' : '126px'; + if (isViewerSidebarPinned && !isPagesSidebarHidden) { + if (position === 'side' && isSidebarOpen && isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH + RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_EXPANDED}px`; + } else if (position === 'side' && isSidebarOpen && !isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_EXPANDED}px`; + } else if (position === 'side' && isRightSidebarOpen && !isSidebarOpen && !isPagesSidebarHidden) { + offset = `${RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_EXPANDED}px`; + } } else { - offset = position === 'side' ? '171px' : '126px'; + if (position === 'side' && isSidebarOpen && isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH + RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + } else if (position === 'side' && isSidebarOpen && !isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + } else if (position === 'side' && isRightSidebarOpen && !isSidebarOpen && !isPagesSidebarHidden) { + offset = `${RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + } } - return `calc(100vw - ${offset})`; + if ((position === 'top' || isPagesSidebarHidden) && isSidebarOpen && isRightSidebarOpen) { + offset = `${LEFT_SIDEBAR_WIDTH + RIGHT_SIDEBAR_WIDTH}px`; + } else if ((position === 'top' || isPagesSidebarHidden) && isSidebarOpen && !isRightSidebarOpen) { + offset = `${LEFT_SIDEBAR_WIDTH}px`; + } else if ((position === 'top' || isPagesSidebarHidden) && isRightSidebarOpen && !isSidebarOpen) { + offset = `${RIGHT_SIDEBAR_WIDTH}px`; + } + + return `calc(100% + ${offset})`; } return ( @@ -177,7 +202,7 @@ export const AppCanvas = ({ appId, isViewer = false, switchDarkMode, darkMode }) 'canvas-container d-flex page-container', { 'dark-theme theme-dark': isAppDarkMode, close: !isViewerSidebarPinned }, { 'overflow-x-auto': currentMode === 'edit' }, - { 'position-top': position === 'top' }, + { 'position-top': position === 'top' || isPagesSidebarHidden }, { 'overflow-x-hidden': moduleId !== 'canvas' } // Disbling horizontal scroll for modules in view mode )} style={canvasContainerStyles} diff --git a/frontend/src/AppBuilder/AppCanvas/appCanvas.scss b/frontend/src/AppBuilder/AppCanvas/appCanvas.scss index 66e5d622dd..fea79195c5 100644 --- a/frontend/src/AppBuilder/AppCanvas/appCanvas.scss +++ b/frontend/src/AppBuilder/AppCanvas/appCanvas.scss @@ -26,6 +26,7 @@ .empty-box-cont{ display: flex; justify-content: center; + margin: unset !important; .dotted-cont{ border: 1px dashed var(--indigo8); diff --git a/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js b/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js index 9553504441..0d3fa570e3 100644 --- a/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js +++ b/frontend/src/AppBuilder/AppCanvas/appCanvasConstants.js @@ -14,9 +14,13 @@ export const DEFAULT_CANVAS_WIDTH = 1292; export const APP_HEADER_HEIGHT = 47; -export const LEFT_SIDEBAR_WIDTH = 348; // exclusive of border +export const LEFT_SIDEBAR_WIDTH = 350; -export const RIGHT_SIDEBAR_WIDTH = 299; +export const RIGHT_SIDEBAR_WIDTH = 300; + +export const PAGES_SIDEBAR_WIDTH_EXPANDED = 226; + +export const PAGES_SIDEBAR_WIDTH_COLLAPSED = 44; export const SUBCONTAINER_WIDGETS = ['Container', 'Tabs', 'Listview', 'Kanban', 'Form']; diff --git a/frontend/src/AppBuilder/AppCanvas/useSidebarMargin.js b/frontend/src/AppBuilder/AppCanvas/useSidebarMargin.js index d80cbd76cc..df94532289 100644 --- a/frontend/src/AppBuilder/AppCanvas/useSidebarMargin.js +++ b/frontend/src/AppBuilder/AppCanvas/useSidebarMargin.js @@ -9,6 +9,7 @@ const useSidebarMargin = (canvasContainerRef) => { const { moduleId } = useModuleContext(); const [editorMarginLeft, setEditorMarginLeft] = useState(0); const isSidebarOpen = useStore((state) => state.isSidebarOpen, shallow); + const isRightSidebarOpen = useStore((state) => state.isRightSidebarOpen, shallow); const mode = useStore((state) => state.modeStore.modules[moduleId].currentMode, shallow); useEffect(() => { @@ -17,10 +18,10 @@ const useSidebarMargin = (canvasContainerRef) => { }, [isSidebarOpen, mode]); useEffect(() => { - if (!isEmpty(canvasContainerRef?.current)) { + if (!isEmpty(canvasContainerRef?.current) && isSidebarOpen && canvasContainerRef.current.scrollLeft === 0) { canvasContainerRef.current.scrollLeft += editorMarginLeft; } - }, [editorMarginLeft, canvasContainerRef]); + }, [editorMarginLeft, canvasContainerRef, isSidebarOpen]); return editorMarginLeft; }; diff --git a/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/index.jsx b/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/index.jsx index 9f8379f85c..341ed07652 100644 --- a/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/index.jsx +++ b/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/index.jsx @@ -31,7 +31,6 @@ const GlobalSettings = ({ darkMode }) => {
Components
- ) : ( -Components
+ ) : ( +