(message: UIMessage)
| 195 | }; |
| 196 | |
| 197 | const renderOtherMessage = (message: UIMessage) => { |
| 198 | const textParts = message.parts.filter( |
| 199 | (p): p is TextUIPart => p.type === "text", |
| 200 | ); |
| 201 | const content = textParts.map((p) => p.text).join("\n"); |
| 202 | |
| 203 | return ( |
| 204 | <div className="w-[95%] wrap-break-word"> |
| 205 | <div className="absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity"> |
| 206 | <CopyClipboardIcon className="h-3 w-3" value={content || ""} /> |
| 207 | </div> |
| 208 | {renderUIMessage({ |
| 209 | message, |
| 210 | isStreamingReasoning, |
| 211 | isLast, |
| 212 | isActive, |
| 213 | addToolApprovalResponse, |
| 214 | })} |
| 215 | </div> |
| 216 | ); |
| 217 | }; |
| 218 | |
| 219 | return ( |
| 220 | <div |
no test coverage detected
searching dependent graphs…