@@ -8,6 +8,7 @@ import Diff from "lucide-react/dist/esm/icons/diff";
88import FileDiff from "lucide-react/dist/esm/icons/file-diff" ;
99import FileText from "lucide-react/dist/esm/icons/file-text" ;
1010import Image from "lucide-react/dist/esm/icons/image" ;
11+ import Quote from "lucide-react/dist/esm/icons/quote" ;
1112import Search from "lucide-react/dist/esm/icons/search" ;
1213import Terminal from "lucide-react/dist/esm/icons/terminal" ;
1314import Users from "lucide-react/dist/esm/icons/users" ;
@@ -56,6 +57,7 @@ type MessageRowProps = MarkdownFileLinkProps & {
5657 item : Extract < ConversationItem , { kind : "message" } > ;
5758 isCopied : boolean ;
5859 onCopy : ( item : Extract < ConversationItem , { kind : "message" } > ) => void ;
60+ onQuote ?: ( item : Extract < ConversationItem , { kind : "message" } > ) => void ;
5961 codeBlockCopyUseModifier ?: boolean ;
6062} ;
6163
@@ -360,6 +362,7 @@ export const MessageRow = memo(function MessageRow({
360362 item,
361363 isCopied,
362364 onCopy,
365+ onQuote,
363366 codeBlockCopyUseModifier,
364367 showMessageFilePath,
365368 workspacePath,
@@ -414,6 +417,17 @@ export const MessageRow = memo(function MessageRow({
414417 onClose = { ( ) => setLightboxIndex ( null ) }
415418 />
416419 ) }
420+ { onQuote && hasText && (
421+ < button
422+ type = "button"
423+ className = "ghost message-quote-button"
424+ onClick = { ( ) => onQuote ( item ) }
425+ aria-label = "Quote message"
426+ title = "Quote message"
427+ >
428+ < Quote size = { 14 } aria-hidden />
429+ </ button >
430+ ) }
417431 < button
418432 type = "button"
419433 className = { `ghost message-copy-button${ isCopied ? " is-copied" : "" } ` }
0 commit comments