Skip to content

Commit 80d8fac

Browse files
committed
feat(stream): add link detection to message output
- Add onLinkDetected callback prop - Integrate with URL detection system - Support enhanced message types from upstream Enables automatic detection of URLs in Claude's responses and terminal command outputs.
1 parent 1bb265b commit 80d8fac

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/components/StreamMessage.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,13 @@ interface StreamMessageProps {
4242
message: ClaudeStreamMessage | EnhancedMessage;
4343
className?: string;
4444
streamMessages: (ClaudeStreamMessage | EnhancedMessage)[];
45+
onLinkDetected?: (url: string) => void;
4546
}
4647

4748
/**
4849
* Component to render a single Claude Code stream message
4950
*/
50-
export const StreamMessage: React.FC<StreamMessageProps> = ({ message, className, streamMessages }) => {
51+
const StreamMessageComponent: React.FC<StreamMessageProps> = ({ message, className, streamMessages, onLinkDetected }) => {
5152
try {
5253
// Skip rendering for meta messages that don't have meaningful content
5354
if (message.isMeta && !message.leafUuid && !message.summary) {
@@ -284,7 +285,7 @@ export const StreamMessage: React.FC<StreamMessageProps> = ({ message, className
284285
const stdoutMatch = contentStr.match(/<local-command-stdout>([\s\S]*?)<\/local-command-stdout>/);
285286
if (stdoutMatch) {
286287
const [, output] = stdoutMatch;
287-
return <CommandOutputWidget output={output} />;
288+
return <CommandOutputWidget output={output} onLinkDetected={onLinkDetected} />;
288289
}
289290

290291
// Otherwise render as plain text
@@ -631,4 +632,6 @@ export const StreamMessage: React.FC<StreamMessageProps> = ({ message, className
631632
</Card>
632633
);
633634
}
634-
};
635+
};
636+
637+
export const StreamMessage = React.memo(StreamMessageComponent);

0 commit comments

Comments
 (0)