From f07d4b933c015310bbb7703c02b2672595a2aef6 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 16 Dec 2025 15:42:31 -0600 Subject: [PATCH] fix(desktop): prompt history nav --- packages/desktop/src/components/prompt-input.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx index b152ff0f5..aea9f4e23 100644 --- a/packages/desktop/src/components/prompt-input.tsx +++ b/packages/desktop/src/components/prompt-input.tsx @@ -598,19 +598,24 @@ export const PromptInput: Component = (props) => { const cursorPosition = getCursorPosition(editorRef) const textLength = promptLength(prompt.current()) + const textContent = editorRef.textContent ?? "" + const isEmpty = textContent.trim() === "" || textLength <= 1 + const hasNewlines = textContent.includes("\n") const inHistory = store.historyIndex >= 0 - const atStart = cursorPosition <= 0 - const atEnd = cursorPosition >= textLength + const atStart = cursorPosition <= (isEmpty ? 1 : 0) + const atEnd = cursorPosition >= (isEmpty ? textLength - 1 : textLength) + const allowUp = isEmpty || atStart || (!hasNewlines && !inHistory) || (inHistory && atEnd) + const allowDown = isEmpty || atEnd || (!hasNewlines && !inHistory) || (inHistory && atStart) if (event.key === "ArrowUp") { - if (!atStart && !(inHistory && atEnd)) return + if (!allowUp) return if (navigateHistory("up")) { event.preventDefault() } return } - if (!atEnd && !(inHistory && atStart)) return + if (!allowDown) return if (navigateHistory("down")) { event.preventDefault() }