diff --git a/packages/bruno-app/src/components/RequestTabPanel/index.js b/packages/bruno-app/src/components/RequestTabPanel/index.js index 81765391f..c438ef9dd 100644 --- a/packages/bruno-app/src/components/RequestTabPanel/index.js +++ b/packages/bruno-app/src/components/RequestTabPanel/index.js @@ -52,6 +52,7 @@ const RequestTabPanel = () => { const _collections = useSelector((state) => state.collections.collections); const preferences = useSelector((state) => state.app.preferences); const isVerticalLayout = preferences?.layout?.responsePaneOrientation === 'vertical'; + const isConsoleOpen = useSelector((state) => state.logs.isConsoleOpen); // Use ref to avoid stale closure in event handlers const isVerticalLayoutRef = useRef(isVerticalLayout); @@ -80,6 +81,7 @@ const RequestTabPanel = () => { const draggingRef = useRef(false); const { left: leftPaneWidth, top: topPaneHeight, reset: resetPaneBoundaries, setTop: setTopPaneHeight, setLeft: setLeftPaneWidth } = useTabPaneBoundaries(activeTabUid); + const previousTopPaneHeight = useRef(null); // Store height before devtools opens // Not a recommended pattern here to have the child component // make a callback to set state, but treating this as an exception @@ -145,6 +147,30 @@ const RequestTabPanel = () => { }; }, [handleMouseUp, handleMouseMove]); + // When devtools opens in vertical layout, reduce request pane height to ensure response pane is visible + // When devtools closes, restore the previous height + useEffect(() => { + if (!isVerticalLayout) return; + + if (isConsoleOpen) { + // Store current height before reducing + if (previousTopPaneHeight.current === null) { + previousTopPaneHeight.current = topPaneHeight; + } + // Reduce request pane height to make room for response pane when devtools is open + const maxHeight = 200; + if (topPaneHeight > maxHeight) { + setTopPaneHeight(maxHeight); + } + } else { + // Restore previous height when devtools closes + if (previousTopPaneHeight.current !== null) { + setTopPaneHeight(previousTopPaneHeight.current); + previousTopPaneHeight.current = null; + } + } + }, [isConsoleOpen, isVerticalLayout]); + if (!activeTabUid) { return ; } diff --git a/packages/bruno-app/src/components/ResponsePane/Placeholder/index.js b/packages/bruno-app/src/components/ResponsePane/Placeholder/index.js index 4a315ca26..0dacc3fc7 100644 --- a/packages/bruno-app/src/components/ResponsePane/Placeholder/index.js +++ b/packages/bruno-app/src/components/ResponsePane/Placeholder/index.js @@ -12,12 +12,14 @@ const Placeholder = () => { const preferences = useSelector((state) => state.app.preferences); const isVerticalLayout = preferences?.layout?.responsePaneOrientation === 'vertical'; + const iconSize = isVerticalLayout ? 80 : 150; + return ( -
- +
+
-
+
Send Request
New Request