From 9bedf238e4f88187eb5ed2aadee22b9ac8df4d13 Mon Sep 17 00:00:00 2001 From: Leonardo Christino <leomilho@gmail.com> Date: Tue, 20 Feb 2024 17:40:11 +0100 Subject: [PATCH] chore: fixes --- .../dbConnectionSelector.tsx | 2 +- .../DatabaseManagement/forms/settings.tsx | 2 +- libs/shared/lib/data-access/api/eventBus.tsx | 3 +-- .../nodelink/components/NLPixi.tsx | 26 +++++++++++++++---- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx b/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx index b8106764e..7464dc8e7 100644 --- a/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx +++ b/apps/web/src/components/navbar/DatabaseManagement/dbConnectionSelector.tsx @@ -25,7 +25,7 @@ export default function DatabaseSelector({}) { useEffect(() => { if ( - (session.saveStates && Object.keys(session.saveStates).length === 0 && settingsMenuOpen !== 'create') || + (session.saveStates && Object.keys(session.saveStates).length === 0 && settingsMenuOpen === undefined) || session.currentSaveState === nilUUID ) { setSettingsMenuOpen('create'); diff --git a/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx b/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx index b6e2ae560..34a9e5a09 100644 --- a/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx +++ b/apps/web/src/components/navbar/DatabaseManagement/forms/settings.tsx @@ -61,7 +61,7 @@ export const SettingsForm = (props: { console.error('formDataRef.current.user_id is not equal to auth.userID'); formDataRef.current.user_id = auth.userID; } - if (data.status === 'success') { + if (data && data.status === 'success') { setConnection((prevState) => ({ updating: false, status: 'Database connection verified', diff --git a/libs/shared/lib/data-access/api/eventBus.tsx b/libs/shared/lib/data-access/api/eventBus.tsx index 219e3984f..a3b1dee1e 100644 --- a/libs/shared/lib/data-access/api/eventBus.tsx +++ b/libs/shared/lib/data-access/api/eventBus.tsx @@ -167,10 +167,9 @@ export const EventBus = (props: { onRunQuery: Function; onAuthorized: Function } // Process URL Params const paramSaveState = getParam(URLParams.saveState); + deleteParam(URLParams.saveState); if (paramSaveState && paramSaveState !== nilUUID) { wsGetState(paramSaveState); - } else { - deleteParam(URLParams.saveState); } wsGetStates(); diff --git a/libs/shared/lib/vis/visualizations/nodelink/components/NLPixi.tsx b/libs/shared/lib/vis/visualizations/nodelink/components/NLPixi.tsx index 7e09cc638..935fe3bc2 100644 --- a/libs/shared/lib/vis/visualizations/nodelink/components/NLPixi.tsx +++ b/libs/shared/lib/vis/visualizations/nodelink/components/NLPixi.tsx @@ -34,6 +34,7 @@ export const NLPixi = (props: Props) => { const linkMap = useRef(new Map<string, Graphics>()); const viewport = useRef<Viewport>(); const ref = useRef<HTMLDivElement>(null); + const mouseInCanvas = useRef<boolean>(false); const isSetup = useRef(false); const ml = useML(); const dragging = useRef<{ node: NodeType; gfx: Graphics } | null>(null); @@ -94,7 +95,13 @@ export const NLPixi = (props: Props) => { } }, onHover(node: NodeType) { - if (viewport?.current && !viewport?.current?.pause && node && popups.filter((p) => p.node.id === node.id).length === 0) { + if ( + mouseInCanvas.current && + viewport?.current && + !viewport?.current?.pause && + node && + popups.filter((p) => p.node.id === node.id).length === 0 + ) { setQuickPopup({ node, pos: toGlobal(node) }); } }, @@ -192,10 +199,12 @@ export const NLPixi = (props: Props) => { gfx.off('mousedown'); gfx.on('mouseover', (e) => { e.stopPropagation(); + e.preventDefault(); if (imperative.current) imperative.current.onHover(node); }); gfx.on('mouseout', (e) => { e.stopPropagation(); + e.preventDefault(); if (imperative.current) imperative.current.onUnHover(); }); gfx.on('mousedown', (e) => onDragStart(e, node, gfx)); @@ -480,11 +489,18 @@ export const NLPixi = (props: Props) => { return ( <> - {popups.map((popup) => ( - <NLPopup onClose={() => {}} data={popup} key={popup.node.id} /> - ))} + {mouseInCanvas.current && popups.map((popup) => <NLPopup onClose={() => {}} data={popup} key={popup.node.id} />)} {quickPopup && <NLPopup onClose={() => {}} data={quickPopup} />} - <div className="h-full w-full overflow-hidden" ref={ref}></div> + <div + className="h-full w-full overflow-hidden" + ref={ref} + onMouseEnter={(e) => { + mouseInCanvas.current = true; + }} + onMouseOut={(e) => { + mouseInCanvas.current = false; + }} + ></div> </> ); }; -- GitLab