From 90ae863899b22369d8cd9578c529eae7acd8b9b2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:36:21 +0000 Subject: [PATCH 1/3] Initial plan From 5b753d2578e7ea8e6f2f3d7d53dfb7b4e406c469 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:39:56 +0000 Subject: [PATCH 2/3] Add clipboard image paste support to Draft component Co-authored-by: adbenitez <24558636+adbenitez@users.noreply.github.com> --- src/components/Draft.tsx | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/components/Draft.tsx b/src/components/Draft.tsx index 1046805..be15b21 100644 --- a/src/components/Draft.tsx +++ b/src/components/Draft.tsx @@ -184,6 +184,28 @@ export default function Draft({ replyToPostId, onReplySubmitted }: Props = {}) { [manager.maxSize], ); + const handlePaste = useCallback( + async (event: React.ClipboardEvent) => { + const clipboardData = event.clipboardData; + if (!clipboardData) return; + + // Check if clipboard contains image data + const items = clipboardData.items; + for (let i = 0; i < items.length; i++) { + const item = items[i]; + if (item.type.startsWith("image/")) { + event.preventDefault(); // Prevent default paste behavior for images + const file = item.getAsFile(); + if (file) { + await onFileSelected(file); + } + break; + } + } + }, + [onFileSelected], + ); + const onPixelIt = useCallback(async () => { const url = await pixelate(fileUrl); console.log("pixelate:" + url.length); @@ -218,6 +240,7 @@ export default function Draft({ replyToPostId, onReplySubmitted }: Props = {}) { ref={textareaRef} style={styled ? cardStyle : textareaStyle} placeholder={hint} + onPaste={handlePaste} > {isImage && } {isVideo && } From 6b5a3e8f8a64103581e7b19143c4fdce7fd8e1a0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:41:10 +0000 Subject: [PATCH 3/3] Add error handling to handlePaste function Co-authored-by: adbenitez <24558636+adbenitez@users.noreply.github.com> --- src/components/Draft.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/Draft.tsx b/src/components/Draft.tsx index be15b21..2181521 100644 --- a/src/components/Draft.tsx +++ b/src/components/Draft.tsx @@ -197,7 +197,11 @@ export default function Draft({ replyToPostId, onReplySubmitted }: Props = {}) { event.preventDefault(); // Prevent default paste behavior for images const file = item.getAsFile(); if (file) { - await onFileSelected(file); + try { + await onFileSelected(file); + } catch (error) { + console.error("Error processing pasted image:", error); + } } break; }