summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDaniel Polito <[email protected]>2026-01-07 12:40:21 -0300
committerGitHub <[email protected]>2026-01-07 09:40:21 -0600
commit2d5b9a5cc671e3c40b28b902187d0d58fb5a92de (patch)
treeee8cab7bbc2f1dc7364f73f7ec19bf74bfe41357 /packages
parentfb3ca895d68c26a8d33775e815da12f9eb842e8b (diff)
downloadopencode-2d5b9a5cc671e3c40b28b902187d0d58fb5a92de.tar.gz
opencode-2d5b9a5cc671e3c40b28b902187d0d58fb5a92de.zip
Desktop: Fix Paste image on empty input (#7130)
Diffstat (limited to 'packages')
-rw-r--r--packages/app/src/components/prompt-input.tsx13
1 files changed, 6 insertions, 7 deletions
diff --git a/packages/app/src/components/prompt-input.tsx b/packages/app/src/components/prompt-input.tsx
index 3b14098a3..a5655902a 100644
--- a/packages/app/src/components/prompt-input.tsx
+++ b/packages/app/src/components/prompt-input.tsx
@@ -248,6 +248,8 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
}
}
+ const isFocused = createFocusSignal(() => editorRef)
+
createEffect(() => {
params.id
editorRef.focus()
@@ -258,7 +260,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
onCleanup(() => clearInterval(interval))
})
- const isFocused = createFocusSignal(() => editorRef)
const [composing, setComposing] = createSignal(false)
const isImeComposing = (event: KeyboardEvent) => event.isComposing || composing() || event.keyCode === 229
@@ -292,12 +293,13 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
const clipboardData = event.clipboardData
if (!clipboardData) return
+ event.preventDefault()
+ event.stopPropagation()
+
const items = Array.from(clipboardData.items)
const imageItems = items.filter((item) => ACCEPTED_FILE_TYPES.includes(item.type))
if (imageItems.length > 0) {
- event.preventDefault()
- event.stopPropagation()
for (const item of imageItems) {
const file = item.getAsFile()
if (file) await addImageAttachment(file)
@@ -305,8 +307,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
return
}
- event.preventDefault()
- event.stopPropagation()
const plainText = clipboardData.getData("text/plain") ?? ""
addPart({ type: "text", content: plainText, start: 0, end: 0 })
}
@@ -347,13 +347,11 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
}
onMount(() => {
- editorRef.addEventListener("paste", handlePaste)
document.addEventListener("dragover", handleGlobalDragOver)
document.addEventListener("dragleave", handleGlobalDragLeave)
document.addEventListener("drop", handleGlobalDrop)
})
onCleanup(() => {
- editorRef.removeEventListener("paste", handlePaste)
document.removeEventListener("dragover", handleGlobalDragOver)
document.removeEventListener("dragleave", handleGlobalDragLeave)
document.removeEventListener("drop", handleGlobalDrop)
@@ -1508,6 +1506,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
}}
contenteditable="true"
onInput={handleInput}
+ onPaste={handlePaste}
onCompositionStart={() => setComposing(true)}
onCompositionEnd={() => setComposing(false)}
onKeyDown={handleKeyDown}