diff --git a/frontend/src/Editor/Inspector/EventManager.jsx b/frontend/src/Editor/Inspector/EventManager.jsx index afff47128b..bc4a6b48aa 100644 --- a/frontend/src/Editor/Inspector/EventManager.jsx +++ b/frontend/src/Editor/Inspector/EventManager.jsx @@ -34,6 +34,16 @@ export const EventManager = ({ return { name: action.name, value: action.id }; }); + let checkIfClicksAreInsideOf = document.querySelector('#cm-complete-0'); + // Listen for click events on body + if (checkIfClicksAreInsideOf) { + document.body.addEventListener('click', function (event) { + if (checkIfClicksAreInsideOf.contains(event.target)) { + event.stopPropagation(); + } + }); + } + const darkMode = localStorage.getItem('darkMode') === 'true'; const styles = { ...defaultStyles(darkMode), diff --git a/frontend/src/Editor/LeftSidebar/SidebarPageSelector/PageHandler.jsx b/frontend/src/Editor/LeftSidebar/SidebarPageSelector/PageHandler.jsx index e61f8d0215..057db82ff9 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarPageSelector/PageHandler.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarPageSelector/PageHandler.jsx @@ -26,6 +26,8 @@ export const PageHandler = ({ pages, components, dataQueries, + pinPagesPopover, + haveUserPinned, }) => { const isHomePage = page.id === homePageId; const isSelected = page.id === currentPageId; @@ -174,7 +176,10 @@ export const PageHandler = ({ setShowSettingsModal(false)} + handleClose={() => { + setShowSettingsModal(false); + !haveUserPinned && pinPagesPopover(false); + }} darkMode={darkMode} updateOnPageLoadEvents={updateOnPageLoadEvents} currentState={currentState} @@ -182,6 +187,7 @@ export const PageHandler = ({ pages={pages} components={components} dataQueries={dataQueries} + pinPagesPopover={pinPagesPopover} /> diff --git a/frontend/src/Editor/LeftSidebar/SidebarPageSelector/SettingsModal.jsx b/frontend/src/Editor/LeftSidebar/SidebarPageSelector/SettingsModal.jsx index 285404a56d..43979eb136 100644 --- a/frontend/src/Editor/LeftSidebar/SidebarPageSelector/SettingsModal.jsx +++ b/frontend/src/Editor/LeftSidebar/SidebarPageSelector/SettingsModal.jsx @@ -14,6 +14,7 @@ export const SettingsModal = ({ pages, components, dataQueries, + pinPagesPopover, }) => { const [isSaving, _setIsSaving] = useState(false); console.log({ dataQueries }); @@ -21,16 +22,15 @@ export const SettingsModal = ({ const allpages = pages.filter((p) => p.id !== page.id); return ( -
event.stopPropagation()}> +
event.stopPropagation()} > @@ -55,7 +55,7 @@ export const SettingsModal = ({ - + pinPagesPopover(true)}> Events { const [allpages, setPages] = useState(pages); const [pinned, setPinned] = useState(false); + const [haveUserPinned, setHaveUserPinned] = useState(false); const [newPageBeingCreated, setNewPageBeingCreated] = useState(false); const [showSearch, setShowSearch] = useState(false); @@ -61,6 +62,12 @@ const LeftSidebarPageSelector = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [JSON.stringify({ pages })]); + const pinPagesPopover = (state) => { + if (!haveUserPinned) { + setPinned(state); + } + }; + const popoverContent = (
@@ -96,7 +103,10 @@ const LeftSidebarPageSelector = ({