From 3f763c2cd2e3a269dcc25016a1a71bad604448fb Mon Sep 17 00:00:00 2001 From: Taylor Ho Date: Thu, 21 May 2026 22:42:34 -0700 Subject: [PATCH] fix(terminal): match composer padding, remove header + drag handle, add p-2 interior MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Outer padding now px-4 pb-2 pt-1 matching the composer's inset - Removed 'Terminal' header bar and drag handle for cleaner look - Added p-2 padding inside the terminal content area - Resize still works via invisible top-edge hit zone (6px) - Removed unused onClose prop (toggle via ⌘+J only) --- .../src/features/channels/ui/ChannelPane.tsx | 13 ++--- .../src/features/terminal/TerminalPanel.tsx | 54 ++++--------------- 2 files changed, 15 insertions(+), 52 deletions(-) diff --git a/desktop/src/features/channels/ui/ChannelPane.tsx b/desktop/src/features/channels/ui/ChannelPane.tsx index a3954b6c9d..8192941efe 100644 --- a/desktop/src/features/channels/ui/ChannelPane.tsx +++ b/desktop/src/features/channels/ui/ChannelPane.tsx @@ -180,7 +180,7 @@ export const ChannelPane = React.memo(function ChannelPane({ const timelineScrollRef = React.useRef(null); const composerWrapperRef = React.useRef(null); useComposerHeightPadding(timelineScrollRef, composerWrapperRef); - const { isOpen: isTerminalOpen, close: closeTerminal } = useTerminal(); + const { isOpen: isTerminalOpen } = useTerminal(); React.useEffect(() => { if (typeof window === "undefined") { @@ -439,13 +439,10 @@ export const ChannelPane = React.memo(function ChannelPane({ {activeChannel && isTerminalOpen ? ( -
- -
+ ) : null} diff --git a/desktop/src/features/terminal/TerminalPanel.tsx b/desktop/src/features/terminal/TerminalPanel.tsx index 06d588420d..cb22715b3f 100644 --- a/desktop/src/features/terminal/TerminalPanel.tsx +++ b/desktop/src/features/terminal/TerminalPanel.tsx @@ -1,5 +1,4 @@ import * as React from "react"; -import { X, Minus, GripHorizontal } from "lucide-react"; import { TerminalInstance } from "./TerminalInstance"; @@ -31,14 +30,9 @@ function getInitialTerminalHeight(): number { type TerminalPanelProps = { channelId: string; isOpen: boolean; - onClose: () => void; }; -export function TerminalPanel({ - channelId, - isOpen, - onClose, -}: TerminalPanelProps) { +export function TerminalPanel({ channelId, isOpen }: TerminalPanelProps) { const [heightPx, setHeightPx] = React.useState(getInitialTerminalHeight); // Persist height to session storage. @@ -53,8 +47,13 @@ export function TerminalPanel({ } }, [heightPx]); + // Resize via pointer drag on the top edge. const handleResizeStart = React.useCallback( - (event: React.PointerEvent) => { + (event: React.PointerEvent) => { + // Only trigger on the top 6px of the container. + const rect = event.currentTarget.getBoundingClientRect(); + if (event.clientY - rect.top > 6) return; + event.preventDefault(); const startY = event.clientY; const startHeight = heightPx; @@ -65,7 +64,6 @@ export function TerminalPanel({ document.body.style.userSelect = "none"; const handlePointerMove = (moveEvent: PointerEvent) => { - // Dragging up = negative deltaY = taller panel. const deltaY = startY - moveEvent.clientY; setHeightPx(clampTerminalHeight(startHeight + deltaY)); }; @@ -85,46 +83,14 @@ export function TerminalPanel({ if (!isOpen) return null; return ( -
+
- {/* Resize handle */} - - - {/* Header bar */} -
- Terminal -
- - -
-
- {/* Terminal content */} -
+