From 1b78a2c223b05deddb31165b6867a9086afd7b16 Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Wed, 26 Jan 2022 15:34:46 +0530 Subject: [PATCH] feat: dragbar adjusting request and response panes --- .../RequestTabPanel/StyledWrapper.js | 12 +++++ .../src/components/RequestTabPanel/index.js | 45 +++++++++++-------- .../src/pageComponents/Main/StyledWrapper.js | 12 ----- .../src/pageComponents/Main/index.js | 1 + packages/grafnode-run/src/styles/globals.css | 1 + 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/packages/grafnode-components/src/components/RequestTabPanel/StyledWrapper.js b/packages/grafnode-components/src/components/RequestTabPanel/StyledWrapper.js index 195b0632f..f4007609f 100644 --- a/packages/grafnode-components/src/components/RequestTabPanel/StyledWrapper.js +++ b/packages/grafnode-components/src/components/RequestTabPanel/StyledWrapper.js @@ -1,6 +1,18 @@ import styled from 'styled-components'; const StyledWrapper = styled.div` + div.drag-request { + display: flex; + width: 0.5rem; + padding: 0; + cursor: col-resize; + background: transparent; + border-left: solid 1px var(--color-request-dragbar-background); + + &:hover { + border-left: solid 1px var(--color-request-dragbar-background-active); + } + } `; export default StyledWrapper; \ No newline at end of file diff --git a/packages/grafnode-components/src/components/RequestTabPanel/index.js b/packages/grafnode-components/src/components/RequestTabPanel/index.js index 839da3ca0..962ff7bec 100644 --- a/packages/grafnode-components/src/components/RequestTabPanel/index.js +++ b/packages/grafnode-components/src/components/RequestTabPanel/index.js @@ -18,37 +18,41 @@ const RequestTabPanel = ({dispatch, actions, collections, activeRequestTabId, re return
; } - let asideWidth = 200; + let asideWidth = 230; let { schema } = useGraphqlSchema('https://api.spacex.land/graphql'); - const [leftPaneWidth, setLeftPaneWidth] = useState(500); - const [rightPaneWidth, setRightPaneWidth] = useState(window.innerWidth - 700 - asideWidth); + const [leftPaneWidth, setLeftPaneWidth] = useState((window.innerWidth - asideWidth)/2 - 10); // 10 is for dragbar + const [rightPaneWidth, setRightPaneWidth] = useState((window.innerWidth - asideWidth)/2); + console.log((window.innerWidth - asideWidth)/2); const [dragging, setDragging] = useState(false); const handleMouseMove = (e) => { - e.preventDefault(); if(dragging) { - setLeftPaneWidth(e.clientX - asideWidth ); + e.preventDefault(); + setLeftPaneWidth(e.clientX - asideWidth); setRightPaneWidth(window.innerWidth - (e.clientX)); } }; const handleMouseUp = (e) => { - e.preventDefault(); - setDragging(false); + if(dragging) { + e.preventDefault(); + setDragging(false); + } }; - const handleMouseDown = (e) => { + const handleDragbarMouseDown = (e) => { e.preventDefault(); setDragging(true); }; - // useEffect(() => { - // document.addEventListener('mouseup', handleMouseUp); - // document.addEventListener('mousemove', handleMouseMove); - // return () => { - // document.removeEventListener('mouseup', handleMouseUp); - // document.removeEventListener('mousemove', handleMouseMove); - // }; - // }, [dragging, leftPaneWidth]); + useEffect(() => { + document.addEventListener('mouseup', handleMouseUp); + document.addEventListener('mousemove', handleMouseMove); + + return () => { + document.removeEventListener('mouseup', handleMouseUp); + document.removeEventListener('mousemove', handleMouseMove); + }; + }, [dragging, leftPaneWidth]); const onUrlChange = (value) => { dispatch({ @@ -119,8 +123,11 @@ const RequestTabPanel = ({dispatch, actions, collections, activeRequestTabId, re />
-
-
+
+
{item.request.type === 'graphql' ? (
-
+
diff --git a/packages/grafnode-run/src/pageComponents/Main/StyledWrapper.js b/packages/grafnode-run/src/pageComponents/Main/StyledWrapper.js index 3a76c3b0d..2bb60e845 100644 --- a/packages/grafnode-run/src/pageComponents/Main/StyledWrapper.js +++ b/packages/grafnode-run/src/pageComponents/Main/StyledWrapper.js @@ -20,18 +20,6 @@ const Wrapper = styled.div` } } - div.drag-request { - display: flex; - width: 1px; - padding: 0; - cursor: col-resize; - background: var(--color-request-dragbar-background); - - &:hover { - background: silver; - } - } - .fw-600 { font-weight: 600; } diff --git a/packages/grafnode-run/src/pageComponents/Main/index.js b/packages/grafnode-run/src/pageComponents/Main/index.js index 3aeaac731..dc8eabedf 100644 --- a/packages/grafnode-run/src/pageComponents/Main/index.js +++ b/packages/grafnode-run/src/pageComponents/Main/index.js @@ -28,6 +28,7 @@ import 'codemirror-graphql/jump'; import 'codemirror-graphql/mode'; import 'codemirror/addon/fold/foldgutter.css'; +import 'codemirror/addon/dialog/dialog.css'; import 'codemirror/addon/hint/show-hint.css'; const RequestTabPanel = dynamic(import('@grafnode/components').then(mod => mod.RequestTabPanel), { ssr: false }); diff --git a/packages/grafnode-run/src/styles/globals.css b/packages/grafnode-run/src/styles/globals.css index 5c44e01c8..16898c11d 100644 --- a/packages/grafnode-run/src/styles/globals.css +++ b/packages/grafnode-run/src/styles/globals.css @@ -4,6 +4,7 @@ --color-sidebar-collection-item-focused-indent-border: #7b8de3; --color-sidebar-background: #f6f8fa; --color-request-dragbar-background: #e2e2e2; + --color-request-dragbar-background-active: #bbb; --color-tab-active-border: #4d4d4d; --color-layout-border: #dedede; --color-codemirror-border: #efefef;