From dd5aab4319cc70625e7804c682737253db48e10c Mon Sep 17 00:00:00 2001 From: Vijaykant Yadav Date: Thu, 3 Jul 2025 11:17:07 +0530 Subject: [PATCH 1/5] merge base fix pr --- .../src/AppBuilder/AppCanvas/AppCanvas.jsx | 53 +++++++++++-- .../src/AppBuilder/AppCanvas/appCanvas.scss | 1 + .../AppCanvas/appCanvasConstants.js | 8 +- .../AppBuilder/AppCanvas/useSidebarMargin.js | 5 +- .../src/AppBuilder/QueryPanel/QueryPanel.jsx | 1 + .../PageMenu/AddNewPagePopup.jsx | 14 +--- .../PageSettingsTab/PageMenu/PageGroup.jsx | 1 + .../PageMenu/PagesSidebarNavigation.jsx | 78 +++++++++---------- .../PageSettingsTab/PageSettings.jsx | 13 ++-- .../AppBuilder/RightSideBar/RightSideBar.jsx | 22 +++++- frontend/src/AppBuilder/Viewer/Viewer.jsx | 13 ---- frontend/src/_components/DarkModeToggle.jsx | 3 +- frontend/src/_styles/left-sidebar.scss | 13 ++-- frontend/src/_styles/pages-sidebar.scss | 9 ++- frontend/src/_styles/popover.scss | 4 +- frontend/src/_styles/queryManager.scss | 2 +- frontend/src/_styles/theme.scss | 8 +- 17 files changed, 148 insertions(+), 100 deletions(-) diff --git a/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx b/frontend/src/AppBuilder/AppCanvas/AppCanvas.jsx index 12d33283c8..a0554cdaa0 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 && '300' + 'px solid', padding: currentMode === 'edit' && '8px', paddingBottom: currentMode === 'edit' && '2px', }; @@ -150,17 +156,48 @@ export const AppCanvas = ({ appId, isViewer = false, switchDarkMode, darkMode }) if (isModuleMode) return '100%'; const shouldAdjust = isSidebarOpen || (isRightSidebarOpen && currentMode === 'edit'); + console.log({ shouldAdjust }); 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`; + console.log('here1'); + } else if (position === 'side' && isSidebarOpen && !isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_EXPANDED}px`; + console.log('here2'); + } else if (position === 'side' && isRightSidebarOpen && !isSidebarOpen && !isPagesSidebarHidden) { + offset = `${RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_EXPANDED}px`; + console.log('here3'); + } } else { - offset = position === 'side' ? '171px' : '126px'; + if (position === 'side' && isSidebarOpen && isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH + RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + console.log('here4'); + } else if (position === 'side' && isSidebarOpen && !isRightSidebarOpen && !isPagesSidebarHidden) { + offset = `${LEFT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + console.log('here5'); + } else if (position === 'side' && isRightSidebarOpen && !isSidebarOpen && !isPagesSidebarHidden) { + offset = `${RIGHT_SIDEBAR_WIDTH - PAGES_SIDEBAR_WIDTH_COLLAPSED}px`; + console.log('here6'); + } } - return `calc(100vw - ${offset})`; + console.log({ isPagesSidebarHidden, isSidebarOpen, isRightSidebarOpen, offset }); + + if ((position === 'top' || isPagesSidebarHidden) && isSidebarOpen && isRightSidebarOpen) { + offset = `${LEFT_SIDEBAR_WIDTH + RIGHT_SIDEBAR_WIDTH}px`; + console.log('here7'); + } else if ((position === 'top' || isPagesSidebarHidden) && isSidebarOpen && !isRightSidebarOpen) { + offset = `${LEFT_SIDEBAR_WIDTH}px`; + console.log('here8'); + } else if ((position === 'top' || isPagesSidebarHidden) && isRightSidebarOpen && !isSidebarOpen) { + console.log('here'); + offset = `${RIGHT_SIDEBAR_WIDTH}px`; + } + + return `calc(100% + ${offset})`; } return ( @@ -177,7 +214,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/QueryPanel/QueryPanel.jsx b/frontend/src/AppBuilder/QueryPanel/QueryPanel.jsx index efba1741b4..ac854f4716 100644 --- a/frontend/src/AppBuilder/QueryPanel/QueryPanel.jsx +++ b/frontend/src/AppBuilder/QueryPanel/QueryPanel.jsx @@ -155,6 +155,7 @@ export const QueryPanel = ({ darkMode }) => { justifyContent: 'space-between', alignItems: 'center', zIndex: 2, + width: '100%', }} >
{ type="checkbox" checked={isHomePage} onChange={() => markAsHomePage(page?.id)} - disabled={isHomePage} + disabled={isHomePage || resolveReferences(page?.hidden?.value) || page?.disabled} />
- {/*
- - -
*/}