Caroa UI

ChatBubble

チャットメッセージの吹き出しコンポーネント。

インポート

import { ChatBubble } from '@caroainc/ui-components'

基本的な使い方

こんにちは!
こんにちは!何かお手伝いできることはありますか?
<ChatBubble role="user">こんにちは!</ChatBubble>
<ChatBubble role="assistant">
  こんにちは!何かお手伝いできることはありますか?
</ChatBubble>

ユーザーメッセージ

role="user"は右寄せで、丸みのあるスタイルで表示されます。

ユーザーからのメッセージです
<ChatBubble role="user">ユーザーからのメッセージです</ChatBubble>

アシスタントメッセージ

role="assistant"は左寄せで、フラットなスタイルで表示されます(ChatGPT風)。

アシスタントからの返答です。複数行のメッセージも対応しています。
<ChatBubble role="assistant">
  アシスタントからの返答です。複数行のメッセージも対応しています。
</ChatBubble>

チャット画面の例

Loading...
<div className="space-y-4">
  <ChatBubble role="user">今日の天気を教えて</ChatBubble>
  <ChatBubble role="assistant">
    今日の東京の天気は晴れで、最高気温は25度の予報です。
  </ChatBubble>
  <ChatBubble role="user">ありがとう!</ChatBubble>
  <ChatBubble role="assistant">
    どういたしまして!他に何かお手伝いできることはありますか?
  </ChatBubble>
</div>

TypingIndicatorとの組み合わせ

入力中の状態を表示する場合は、TypingIndicatorと組み合わせます。

Loading...
<ChatBubble role="assistant">
  <TypingIndicator />
</ChatBubble>

Markdownレンダリングとの組み合わせ

childrenに任意のコンテンツを渡せるため、react-markdownなどと組み合わせて使用できます。

import ReactMarkdown from 'react-markdown'
 
<ChatBubble role="assistant">
  <ReactMarkdown>{markdownContent}</ReactMarkdown>
</ChatBubble>

Props

PropTypeDefaultDescription
role*'user' | 'assistant'-メッセージの送信者
children*React.ReactNode-表示するコンテンツ
classNamestring-追加のCSSクラス

On this page