mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
fix(desktop): don't navigate prompt history if dirty
This commit is contained in:
parent
ebfb985215
commit
e561f1ad68
1 changed files with 11 additions and 0 deletions
|
|
@ -102,6 +102,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
imageAttachments: ImageAttachmentPart[]
|
||||
mode: "normal" | "shell"
|
||||
applyingHistory: boolean
|
||||
userHasEdited: boolean
|
||||
}>({
|
||||
popover: null,
|
||||
historyIndex: -1,
|
||||
|
|
@ -111,6 +112,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
imageAttachments: [],
|
||||
mode: "normal",
|
||||
applyingHistory: false,
|
||||
userHasEdited: false,
|
||||
})
|
||||
|
||||
const MAX_HISTORY = 100
|
||||
|
|
@ -139,6 +141,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
const applyHistoryPrompt = (p: Prompt, position: "start" | "end") => {
|
||||
const length = position === "start" ? 0 : promptLength(p)
|
||||
setStore("applyingHistory", true)
|
||||
setStore("userHasEdited", false)
|
||||
prompt.set(p, length)
|
||||
requestAnimationFrame(() => {
|
||||
editorRef.focus()
|
||||
|
|
@ -440,6 +443,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
|
||||
if (shouldReset) {
|
||||
setStore("popover", null)
|
||||
setStore("userHasEdited", false)
|
||||
if (store.historyIndex >= 0 && !store.applyingHistory) {
|
||||
setStore("historyIndex", -1)
|
||||
setStore("savedPrompt", null)
|
||||
|
|
@ -474,6 +478,10 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
setStore("savedPrompt", null)
|
||||
}
|
||||
|
||||
if (!store.applyingHistory) {
|
||||
setStore("userHasEdited", true)
|
||||
}
|
||||
|
||||
prompt.set(rawParts, cursorPosition)
|
||||
}
|
||||
|
||||
|
|
@ -565,6 +573,8 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
}
|
||||
|
||||
const navigateHistory = (direction: "up" | "down") => {
|
||||
if (store.userHasEdited) return false
|
||||
|
||||
const entries = history.entries
|
||||
const current = store.historyIndex
|
||||
|
||||
|
|
@ -696,6 +706,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
|
|||
addToHistory(currentPrompt)
|
||||
setStore("historyIndex", -1)
|
||||
setStore("savedPrompt", null)
|
||||
setStore("userHasEdited", false)
|
||||
|
||||
let existing = info()
|
||||
if (!existing) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue