Skip to content

Commit 5bbd9d2

Browse files
committed
fix(Message): Deprecate default avatar
1 parent 9b1ed94 commit 5bbd9d2

File tree

2 files changed

+24
-25
lines changed

2 files changed

+24
-25
lines changed

packages/module/src/Message/Message.test.tsx

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,34 +64,35 @@ const checkListItemsRendered = () => {
6464

6565
describe('Message', () => {
6666
it('should render user messages correctly', () => {
67-
render(<Message role="user" name="User" content="Hi" />);
67+
render(<Message avatar="./img" role="user" name="User" content="Hi" />);
6868
expect(screen.getByText('User')).toBeTruthy();
6969
expect(screen.getByText('Hi')).toBeTruthy();
7070
const date = new Date();
7171
expect(screen.getByText(`${date.toLocaleDateString()}, ${date.toLocaleTimeString()}`)).toBeTruthy();
7272
expect(screen.queryByText('Loading message')).toBeFalsy();
73+
expect(screen.getByRole('img')).toHaveAttribute('src', './img');
7374
});
7475
it('should render bot messages correctly', () => {
75-
render(<Message role="bot" name="Bot" content="Hi" />);
76+
render(<Message avatar="./img" role="bot" name="Bot" content="Hi" />);
7677
expect(screen.getByText('Bot')).toBeTruthy();
7778
expect(screen.getByText('AI')).toBeTruthy();
7879
expect(screen.getByText('Hi')).toBeTruthy();
7980
const date = new Date();
8081
expect(screen.getByText(`${date.toLocaleDateString()}, ${date.toLocaleTimeString()}`)).toBeTruthy();
8182
});
8283
it('should render avatar correctly', () => {
83-
render(<Message role="bot" name="Bot" content="Hi" avatar="./testImg" />);
84+
render(<Message avatar="./testImg" role="bot" name="Bot" content="Hi" />);
8485
expect(screen.getByRole('img')).toHaveAttribute('src', './testImg');
8586
});
8687
it('should render botWord correctly', () => {
87-
render(<Message role="bot" name="Bot" content="Hi" botWord="人工知能" />);
88+
render(<Message avatar="./img" role="bot" name="Bot" content="Hi" botWord="人工知能" />);
8889
expect(screen.getByText('Bot')).toBeTruthy();
8990
expect(screen.getByText('人工知能')).toBeTruthy();
9091
expect(screen.queryByText('AI')).toBeFalsy();
9192
expect(screen.getByText('Hi')).toBeTruthy();
9293
});
9394
it('should render timestamps', () => {
94-
render(<Message role="bot" name="Bot" content="Hi" timestamp="2 hours ago" />);
95+
render(<Message avatar="./img" role="bot" name="Bot" content="Hi" timestamp="2 hours ago" />);
9596
expect(screen.getByText('Bot')).toBeTruthy();
9697
expect(screen.getByText('AI')).toBeTruthy();
9798
expect(screen.getByText('Hi')).toBeTruthy();
@@ -100,13 +101,13 @@ describe('Message', () => {
100101
expect(screen.queryByText(`${date.toLocaleDateString()}, ${date.toLocaleTimeString()}`)).toBeFalsy();
101102
});
102103
it('should render attachments', () => {
103-
render(<Message role="user" content="Hi" attachmentName="testAttachment" />);
104+
render(<Message avatar="./img" role="user" content="Hi" attachmentName="testAttachment" />);
104105
expect(screen.getByText('Hi')).toBeTruthy();
105106
expect(screen.getByText('testAttachment')).toBeTruthy();
106107
});
107108
it('should be able to click attachments', async () => {
108109
const spy = jest.fn();
109-
render(<Message role="user" content="Hi" attachmentName="testAttachment" onAttachmentClick={spy} />);
110+
render(<Message avatar="./img" role="user" content="Hi" attachmentName="testAttachment" onAttachmentClick={spy} />);
110111
expect(screen.getByText('Hi')).toBeTruthy();
111112
expect(screen.getByText('testAttachment')).toBeTruthy();
112113
await userEvent.click(screen.getByRole('button', { name: /testAttachment/i }));
@@ -115,7 +116,14 @@ describe('Message', () => {
115116
it('should be able to close attachments', async () => {
116117
const spy = jest.fn();
117118
render(
118-
<Message role="user" content="Hi" attachmentId="001" attachmentName="testAttachment" onAttachmentClose={spy} />
119+
<Message
120+
avatar="./img"
121+
role="user"
122+
content="Hi"
123+
attachmentId="001"
124+
attachmentName="testAttachment"
125+
onAttachmentClose={spy}
126+
/>
119127
);
120128
expect(screen.getByText('Hi')).toBeTruthy();
121129
expect(screen.getByText('testAttachment')).toBeTruthy();
@@ -124,7 +132,7 @@ describe('Message', () => {
124132
expect(spy).toHaveBeenCalledWith('001');
125133
});
126134
it('should render loading state', () => {
127-
render(<Message role="bot" name="Bot" content="Hi" isLoading />);
135+
render(<Message avatar="./img" role="bot" name="Bot" content="Hi" isLoading />);
128136
expect(screen.getByText('Bot')).toBeTruthy();
129137
expect(screen.getByText('AI')).toBeTruthy();
130138
expect(screen.queryByText('Hi')).toBeFalsy();
@@ -135,6 +143,7 @@ describe('Message', () => {
135143
it('should be able to show sources', async () => {
136144
render(
137145
<Message
146+
avatar="./img"
138147
role="bot"
139148
name="Bot"
140149
content="Hi"
@@ -154,6 +163,7 @@ describe('Message', () => {
154163
it('should not show sources if loading', () => {
155164
render(
156165
<Message
166+
avatar="./img"
157167
role="bot"
158168
name="Bot"
159169
content="Hi"
@@ -175,6 +185,7 @@ describe('Message', () => {
175185
it('should be able to show actions', async () => {
176186
render(
177187
<Message
188+
avatar="./img"
178189
role="bot"
179190
name="Bot"
180191
content="Hi"
@@ -199,6 +210,7 @@ describe('Message', () => {
199210
it('should not show actions if loading', async () => {
200211
render(
201212
<Message
213+
avatar="./img"
202214
role="bot"
203215
name="Bot"
204216
content="Hi"

packages/module/src/Message/Message.tsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ export interface MessageProps extends Omit<React.HTMLProps<HTMLDivElement>, 'rol
2828
/** Role of the user sending the message */
2929
role: 'user' | 'bot';
3030
/** Message content */
31-
content: string;
31+
content?: string;
3232
/** Name of the user */
3333
name?: string;
3434
/** Avatar src for the user */
35-
avatar?: string;
35+
avatar: string;
3636
/** Timestamp for the message */
3737
timestamp?: string;
3838
/** Set this to true if message is being loaded */
@@ -85,19 +85,6 @@ export const Message: React.FunctionComponent<MessageProps> = ({
8585
quickResponseContainerProps = { numLabels: 5 },
8686
...props
8787
}: MessageProps) => {
88-
// Configure default values
89-
const DEFAULTS = {
90-
user: {
91-
name: 'User',
92-
avatar: 'https://img.freepik.com/premium-photo/graphic-designer-digital-avatar-generative-ai_934475-9292.jpg'
93-
},
94-
bot: {
95-
name: 'Bot',
96-
avatar:
97-
'https://yt3.googleusercontent.com/ej8uvIe1AIFiJQXBwY9cfJmt0kO1cAeWxpBqG_cJndGHx95mFq1F8WakSoXIjtcprTbMQJoqH5M=s900-c-k-c0x00ffffff-no-rj'
98-
}
99-
};
100-
10188
const onClose = () => {
10289
onAttachmentClose && attachmentId && onAttachmentClose(attachmentId);
10390
};
@@ -113,7 +100,7 @@ export const Message: React.FunctionComponent<MessageProps> = ({
113100
{...props}
114101
>
115102
{/* We are using an empty alt tag intentionally in order to reduce noise on screen readers */}
116-
<Avatar src={avatar ?? DEFAULTS[role].avatar} alt="" />
103+
<Avatar src={avatar} alt="" />
117104
<div className="pf-chatbot__message-contents">
118105
<div className="pf-chatbot__message-meta">
119106
<span className="pf-chatbot__message-name">{name}</span>

0 commit comments

Comments
 (0)