File size: 1,100 Bytes
c59d808
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import React from "react";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";

interface MessageBubbleProps {
  message: {
    text: string;
  };
  isSender: boolean;
}

const MessageBubble = ({ message, isSender }: MessageBubbleProps) => {
  return (
    <div className={`flex ${isSender ? "justify-end" : "justify-start"} mb-4`}>
      <div
        className={`max-w-xs md:max-w-md px-4 py-3 rounded-2xl ${
          isSender
            ? "bg-primary-600 text-grey-100"
            : "bg-white text-primary-700 shadow-sm"
        } shadow-sm`}
      >
        <Markdown
          remarkPlugins={[remarkGfm]}
          components={{
            p: ({ ...props }) => <p className="wrap-anywhere" {...props} />,
            a: ({ ...props }) => (
              <a
                className="underline break-all"
                target="_blank"
                rel="noopener noreferrer"
                {...props}
              />
            ),
          }}
        >
          {message.text}
        </Markdown>
      </div>
    </div>
  );
};

export default MessageBubble;