Skip to content

Commit 70c62e5

Browse files
committed
adds optional input icons
1 parent d9bf06f commit 70c62e5

File tree

12 files changed

+280
-141
lines changed

12 files changed

+280
-141
lines changed

src/components/MessageInput/EditMessageForm.js

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,24 @@ import { ChatAutoComplete } from '../ChatAutoComplete';
1010
import useMessageInput from './hooks/messageInput';
1111
import UploadsPreview from './UploadsPreview';
1212
import EmojiPicker from './EmojiPicker';
13-
import SendButtonComponent from './SendButton';
13+
import {
14+
EmojiIconSmall as DefaultEmojiIcon,
15+
FileUploadIcon as DefaultFileUploadIcon,
16+
} from './icons';
1417
import { KEY_CODES } from '../AutoCompleteTextarea';
1518

1619
/** @type {React.FC<import("types").MessageInputProps>} */
1720
const EditMessageForm = (props) => {
18-
const messageInput = useMessageInput(props);
21+
const {
22+
clearEditingState,
23+
EmojiIcon = DefaultEmojiIcon,
24+
FileUploadIcon = DefaultFileUploadIcon,
25+
} = props;
26+
1927
const channelContext = useContext(ChannelContext);
2028
const { t } = useContext(TranslationContext);
2129

22-
const { clearEditingState } = props;
30+
const messageInput = useMessageInput(props);
2331

2432
useEffect(() => {
2533
/** @type {(event: KeyboardEvent) => void} Typescript syntax */
@@ -66,13 +74,7 @@ const EditMessageForm = (props) => {
6674
className="str-chat__input-emojiselect"
6775
onClick={messageInput.openEmojiPicker}
6876
>
69-
<svg width="14" height="14" xmlns="http://www.w3.org/2000/svg">
70-
<title>{t('Open emoji picker')}</title>
71-
<path
72-
d="M11.108 8.05a.496.496 0 0 1 .212.667C10.581 10.147 8.886 11 7 11c-1.933 0-3.673-.882-4.33-2.302a.497.497 0 0 1 .9-.417C4.068 9.357 5.446 10 7 10c1.519 0 2.869-.633 3.44-1.738a.495.495 0 0 1 .668-.212zm.792-1.826a.477.477 0 0 1-.119.692.541.541 0 0 1-.31.084.534.534 0 0 1-.428-.194c-.106-.138-.238-.306-.539-.306-.298 0-.431.168-.54.307A.534.534 0 0 1 9.538 7a.544.544 0 0 1-.31-.084.463.463 0 0 1-.117-.694c.33-.423.742-.722 1.394-.722.653 0 1.068.3 1.396.724zm-7 0a.477.477 0 0 1-.119.692.541.541 0 0 1-.31.084.534.534 0 0 1-.428-.194c-.106-.138-.238-.306-.539-.306-.299 0-.432.168-.54.307A.533.533 0 0 1 2.538 7a.544.544 0 0 1-.31-.084.463.463 0 0 1-.117-.694c.33-.423.742-.722 1.394-.722.653 0 1.068.3 1.396.724zM7 0a7 7 0 1 1 0 14A7 7 0 0 1 7 0zm4.243 11.243A5.96 5.96 0 0 0 13 7a5.96 5.96 0 0 0-1.757-4.243A5.96 5.96 0 0 0 7 1a5.96 5.96 0 0 0-4.243 1.757A5.96 5.96 0 0 0 1 7a5.96 5.96 0 0 0 1.757 4.243A5.96 5.96 0 0 0 7 13a5.96 5.96 0 0 0 4.243-1.757z"
73-
fillRule="evenodd"
74-
/>
75-
</svg>
77+
<EmojiIcon />
7678
</span>
7779
{messageInput.isUploadEnabled && (
7880
<div
@@ -91,17 +93,7 @@ const EditMessageForm = (props) => {
9193
handleFiles={messageInput.uploadNewFiles}
9294
>
9395
<span className="str-chat__input-fileupload">
94-
<svg
95-
width="14"
96-
height="14"
97-
xmlns="http://www.w3.org/2000/svg"
98-
>
99-
<title>{t('Attach files')}</title>
100-
<path
101-
d="M7 .5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5S.5 10.59.5 7 3.41.5 7 .5zm0 12c3.031 0 5.5-2.469 5.5-5.5S10.031 1.5 7 1.5A5.506 5.506 0 0 0 1.5 7c0 3.034 2.469 5.5 5.5 5.5zM7.506 3v3.494H11v1.05H7.506V11h-1.05V7.544H3v-1.05h3.456V3h1.05z"
102-
fillRule="nonzero"
103-
/>
104-
</svg>
96+
<FileUploadIcon />
10597
</span>
10698
</FileUploadButton>
10799
</div>
@@ -142,13 +134,24 @@ EditMessageForm.propTypes = {
142134
doImageUploadRequest: PropTypes.func,
143135
/** Override file upload request */
144136
doFileUploadRequest: PropTypes.func,
137+
/**
138+
* Custom UI component for emoji button in input.
139+
*
140+
* Defaults to and accepts same props as: [EmojiIconSmall](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
141+
* */
142+
EmojiIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
143+
/**
144+
* Custom UI component for file upload button in input.
145+
*
146+
* Defaults to and accepts same props as: [FileUploadIcon](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
147+
* */
148+
FileUploadIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
145149
/**
146150
* Custom UI component for send button.
147151
*
148152
* Defaults to and accepts same props as: [SendButton](https://getstream.github.io/stream-chat-react/#sendbutton)
149153
* */
150-
// @ts-ignore
151-
SendButton: PropTypes.elementType,
154+
SendButton: /** @type {PropTypes.Validator<React.FC<import('types').SendButtonProps>>} */ (PropTypes.elementType),
152155
/**
153156
* Clears edit state for current message (passed down from message component)
154157
*/
@@ -161,7 +164,6 @@ EditMessageForm.defaultProps = {
161164
publishTypingEvent: true,
162165
grow: true,
163166
maxRows: 10,
164-
SendButton: SendButtonComponent,
165167
additionalTextareaProps: {},
166168
};
167169

src/components/MessageInput/MessageInput.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React from 'react';
22
import MessageInputLarge from './MessageInputLarge';
3-
import SendButton from './SendButton';
43

54
const MessageInput = (props) => {
65
const { Input } = props;
@@ -14,7 +13,6 @@ MessageInput.defaultProps = {
1413
grow: true,
1514
maxRows: 10,
1615
Input: MessageInputLarge,
17-
SendButton,
1816
additionalTextareaProps: {},
1917
};
2018

src/components/MessageInput/MessageInputFlat.js

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,23 @@ import { Tooltip } from '../Tooltip';
1010
import useMessageInput from './hooks/messageInput';
1111
import UploadsPreview from './UploadsPreview';
1212
import EmojiPicker from './EmojiPicker';
13-
import SendButtonComponent from './SendButton';
13+
import DefaultSendButton, {
14+
EmojiIconLarge as DefaultEmojiIcon,
15+
FileUploadIconFlat as DefaultFileUploadIcon,
16+
} from './icons';
1417

1518
/** @type {React.FC<import("types").MessageInputProps>} */
1619
const MessageInputFlat = (props) => {
17-
const messageInput = useMessageInput(props);
20+
const {
21+
EmojiIcon = DefaultEmojiIcon,
22+
FileUploadIcon = DefaultFileUploadIcon,
23+
SendButton = DefaultSendButton,
24+
} = props;
25+
1826
const channelContext = useContext(ChannelContext);
1927
const { t } = useContext(TranslationContext);
20-
const { SendButton } = props;
28+
29+
const messageInput = useMessageInput(props);
2130

2231
return (
2332
<div
@@ -65,13 +74,7 @@ const MessageInputFlat = (props) => {
6574
className="str-chat__input-flat-emojiselect"
6675
onClick={messageInput.openEmojiPicker}
6776
>
68-
<svg width="28" height="28" xmlns="http://www.w3.org/2000/svg">
69-
<title>{t('Open emoji picker')}</title>
70-
<path
71-
d="M22.217 16.1c.483.25.674.849.423 1.334C21.163 20.294 17.771 22 14 22c-3.867 0-7.347-1.765-8.66-4.605a.994.994 0 0 1 .9-1.407c.385 0 .739.225.9.575C8.135 18.715 10.892 20 14 20c3.038 0 5.738-1.267 6.879-3.476a.99.99 0 0 1 1.338-.424zm1.583-3.652c.341.443.235 1.064-.237 1.384a1.082 1.082 0 0 1-.62.168c-.338 0-.659-.132-.858-.389-.212-.276-.476-.611-1.076-.611-.598 0-.864.337-1.08.614-.197.254-.517.386-.854.386-.224 0-.438-.045-.62-.167-.517-.349-.578-.947-.235-1.388.66-.847 1.483-1.445 2.789-1.445 1.305 0 2.136.6 2.79 1.448zm-14 0c.341.443.235 1.064-.237 1.384a1.082 1.082 0 0 1-.62.168c-.339 0-.659-.132-.858-.389C7.873 13.335 7.61 13 7.01 13c-.598 0-.864.337-1.08.614-.197.254-.517.386-.854.386-.224 0-.438-.045-.62-.167-.518-.349-.579-.947-.235-1.388C4.88 11.598 5.703 11 7.01 11c1.305 0 2.136.6 2.79 1.448zM14 0c7.732 0 14 6.268 14 14s-6.268 14-14 14S0 21.732 0 14 6.268 0 14 0zm8.485 22.485A11.922 11.922 0 0 0 26 14c0-3.205-1.248-6.219-3.515-8.485A11.922 11.922 0 0 0 14 2a11.922 11.922 0 0 0-8.485 3.515A11.922 11.922 0 0 0 2 14c0 3.205 1.248 6.219 3.515 8.485A11.922 11.922 0 0 0 14 26c3.205 0 6.219-1.248 8.485-3.515z"
72-
fillRule="evenodd"
73-
/>
74-
</svg>
77+
<EmojiIcon />
7578
</span>
7679
</div>
7780
{messageInput.isUploadEnabled && (
@@ -91,17 +94,7 @@ const MessageInputFlat = (props) => {
9194
handleFiles={messageInput.uploadNewFiles}
9295
>
9396
<span className="str-chat__input-flat-fileupload">
94-
<svg
95-
width="14"
96-
height="14"
97-
xmlns="http://www.w3.org/2000/svg"
98-
>
99-
<title>{t('Attach files')}</title>
100-
<path
101-
d="M1.667.333h10.666c.737 0 1.334.597 1.334 1.334v10.666c0 .737-.597 1.334-1.334 1.334H1.667a1.333 1.333 0 0 1-1.334-1.334V1.667C.333.93.93.333 1.667.333zm2 1.334a1.667 1.667 0 1 0 0 3.333 1.667 1.667 0 0 0 0-3.333zm-2 9.333v1.333h10.666v-4l-2-2-4 4-2-2L1.667 11z"
102-
fillRule="nonzero"
103-
/>
104-
</svg>
97+
<FileUploadIcon />
10598
</span>
10699
</FileUploadButton>
107100
</div>
@@ -142,13 +135,24 @@ MessageInputFlat.propTypes = {
142135
doImageUploadRequest: PropTypes.func,
143136
/** Override file upload request */
144137
doFileUploadRequest: PropTypes.func,
138+
/**
139+
* Custom UI component for emoji button in input.
140+
*
141+
* Defaults to and accepts same props as: [EmojiIconLarge](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
142+
* */
143+
EmojiIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
144+
/**
145+
* Custom UI component for file upload button in input.
146+
*
147+
* Defaults to and accepts same props as: [FileUploadIconFlat](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
148+
* */
149+
FileUploadIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
145150
/**
146151
* Custom UI component for send button.
147152
*
148153
* Defaults to and accepts same props as: [SendButton](https://getstream.github.io/stream-chat-react/#sendbutton)
149154
* */
150-
// @ts-ignore
151-
SendButton: PropTypes.elementType,
155+
SendButton: /** @type {PropTypes.Validator<React.FC<import('types').SendButtonProps>>} */ (PropTypes.elementType),
152156
/** Optional UI component prop to override the default List component that displays suggestions */
153157
SuggestionList: /** @type {PropTypes.Validator<React.ElementType<import('types').SuggestionListProps>>} */ (PropTypes.elementType),
154158
};
@@ -159,7 +163,6 @@ MessageInputFlat.defaultProps = {
159163
publishTypingEvent: true,
160164
grow: true,
161165
maxRows: 10,
162-
SendButton: SendButtonComponent,
163166
additionalTextareaProps: {},
164167
};
165168

src/components/MessageInput/MessageInputLarge.js

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,23 @@ import { Tooltip } from '../Tooltip';
1414
import useMessageInput from './hooks/messageInput';
1515
import EmojiPicker from './EmojiPicker';
1616
import UploadsPreview from './UploadsPreview';
17-
import SendButtonComponent from './SendButton';
17+
import DefaultSendButton, {
18+
EmojiIconSmall as DefaultEmojiIcon,
19+
FileUploadIcon as DefaultFileUploadIcon,
20+
} from './icons';
1821

1922
/** @type {React.FC<import("types").MessageInputProps>} */
2023
const MessageInputLarge = (props) => {
21-
const messageInput = useMessageInput(props);
22-
const { t } = useContext(TranslationContext);
24+
const {
25+
EmojiIcon = DefaultEmojiIcon,
26+
FileUploadIcon = DefaultFileUploadIcon,
27+
SendButton = DefaultSendButton,
28+
} = props;
29+
2330
const channelContext = useContext(ChannelContext);
31+
const { t } = useContext(TranslationContext);
32+
33+
const messageInput = useMessageInput(props);
2434

2535
/**
2636
* @typedef {import("stream-chat").Event} ClientEvent
@@ -50,7 +60,6 @@ const MessageInputLarge = (props) => {
5060
});
5161
};
5262

53-
const { SendButton } = props;
5463
return (
5564
<div className="str-chat__input-large">
5665
<ImageDropzone
@@ -92,13 +101,7 @@ const MessageInputLarge = (props) => {
92101
onClick={messageInput.openEmojiPicker}
93102
ref={messageInput.emojiPickerRef}
94103
>
95-
<svg width="14" height="14" xmlns="http://www.w3.org/2000/svg">
96-
<title>{t('Open emoji picker')}</title>
97-
<path
98-
d="M11.108 8.05a.496.496 0 0 1 .212.667C10.581 10.147 8.886 11 7 11c-1.933 0-3.673-.882-4.33-2.302a.497.497 0 0 1 .9-.417C4.068 9.357 5.446 10 7 10c1.519 0 2.869-.633 3.44-1.738a.495.495 0 0 1 .668-.212zm.792-1.826a.477.477 0 0 1-.119.692.541.541 0 0 1-.31.084.534.534 0 0 1-.428-.194c-.106-.138-.238-.306-.539-.306-.298 0-.431.168-.54.307A.534.534 0 0 1 9.538 7a.544.544 0 0 1-.31-.084.463.463 0 0 1-.117-.694c.33-.423.742-.722 1.394-.722.653 0 1.068.3 1.396.724zm-7 0a.477.477 0 0 1-.119.692.541.541 0 0 1-.31.084.534.534 0 0 1-.428-.194c-.106-.138-.238-.306-.539-.306-.299 0-.432.168-.54.307A.533.533 0 0 1 2.538 7a.544.544 0 0 1-.31-.084.463.463 0 0 1-.117-.694c.33-.423.742-.722 1.394-.722.653 0 1.068.3 1.396.724zM7 0a7 7 0 1 1 0 14A7 7 0 0 1 7 0zm4.243 11.243A5.96 5.96 0 0 0 13 7a5.96 5.96 0 0 0-1.757-4.243A5.96 5.96 0 0 0 7 1a5.96 5.96 0 0 0-4.243 1.757A5.96 5.96 0 0 0 1 7a5.96 5.96 0 0 0 1.757 4.243A5.96 5.96 0 0 0 7 13a5.96 5.96 0 0 0 4.243-1.757z"
99-
fillRule="evenodd"
100-
/>
101-
</svg>
104+
<EmojiIcon />
102105
</span>
103106
</div>
104107
{messageInput.isUploadEnabled && (
@@ -118,17 +121,7 @@ const MessageInputLarge = (props) => {
118121
handleFiles={messageInput.uploadNewFiles}
119122
>
120123
<span className="str-chat__input-fileupload">
121-
<svg
122-
width="14"
123-
height="14"
124-
xmlns="http://www.w3.org/2000/svg"
125-
>
126-
<title>{t('Attach files')}</title>
127-
<path
128-
d="M7 .5c3.59 0 6.5 2.91 6.5 6.5s-2.91 6.5-6.5 6.5S.5 10.59.5 7 3.41.5 7 .5zm0 12c3.031 0 5.5-2.469 5.5-5.5S10.031 1.5 7 1.5A5.506 5.506 0 0 0 1.5 7c0 3.034 2.469 5.5 5.5 5.5zM7.506 3v3.494H11v1.05H7.506V11h-1.05V7.544H3v-1.05h3.456V3h1.05z"
129-
fillRule="nonzero"
130-
/>
131-
</svg>
124+
<FileUploadIcon />
132125
</span>
133126
</FileUploadButton>
134127
</div>
@@ -187,13 +180,24 @@ MessageInputLarge.propTypes = {
187180
doImageUploadRequest: PropTypes.func,
188181
/** Override file upload request */
189182
doFileUploadRequest: PropTypes.func,
183+
/**
184+
* Custom UI component for emoji button in input.
185+
*
186+
* Defaults to and accepts same props as: [EmojiIconSmall](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
187+
* */
188+
EmojiIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
189+
/**
190+
* Custom UI component for file upload button in input.
191+
*
192+
* Defaults to and accepts same props as: [FileUploadIcon](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
193+
* */
194+
FileUploadIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
190195
/**
191196
* Custom UI component for send button.
192197
*
193198
* Defaults to and accepts same props as: [SendButton](https://getstream.github.io/stream-chat-react/#sendbutton)
194199
* */
195-
// @ts-ignore
196-
SendButton: PropTypes.elementType,
200+
SendButton: /** @type {PropTypes.Validator<React.FC<import('types').SendButtonProps>>} */ (PropTypes.elementType),
197201
/** Optional UI component prop to override the default List component that displays suggestions */
198202
SuggestionList: /** @type {PropTypes.Validator<React.ElementType<import('types').SuggestionListProps>>} */ (PropTypes.elementType),
199203
};
@@ -205,7 +209,6 @@ MessageInputLarge.defaultProps = {
205209
grow: true,
206210
maxRows: 10,
207211
Input: MessageInputLarge,
208-
SendButton: SendButtonComponent,
209212
additionalTextareaProps: {},
210213
};
211214

src/components/MessageInput/MessageInputSimple.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@ import { ChatAutoComplete } from '../ChatAutoComplete';
66
import { Tooltip } from '../Tooltip';
77
import useMessageInput from './hooks/messageInput';
88
import EmojiPicker from './EmojiPicker';
9-
import SendButtonComponent from './SendButton';
9+
import DefaultSendButton, { EmojiIconLarge as DefaultEmojiIcon } from './icons';
1010

1111
/** @type {React.FC<import("types").MessageInputProps>} */
1212
const MessageInputSimple = (props) => {
13-
const messageInput = useMessageInput(props);
13+
const {
14+
EmojiIcon = DefaultEmojiIcon,
15+
SendButton = DefaultSendButton,
16+
} = props;
17+
1418
const { t } = useContext(TranslationContext);
15-
const { SendButton } = props;
19+
20+
const messageInput = useMessageInput(props);
1621

1722
return (
1823
<div
@@ -48,13 +53,7 @@ const MessageInputSimple = (props) => {
4853
className="str-chat__input-flat-emojiselect"
4954
onClick={messageInput.openEmojiPicker}
5055
>
51-
<svg width="28" height="28" xmlns="http://www.w3.org/2000/svg">
52-
<title>{t('Open emoji picker')}</title>
53-
<path
54-
d="M22.217 16.1c.483.25.674.849.423 1.334C21.163 20.294 17.771 22 14 22c-3.867 0-7.347-1.765-8.66-4.605a.994.994 0 0 1 .9-1.407c.385 0 .739.225.9.575C8.135 18.715 10.892 20 14 20c3.038 0 5.738-1.267 6.879-3.476a.99.99 0 0 1 1.338-.424zm1.583-3.652c.341.443.235 1.064-.237 1.384a1.082 1.082 0 0 1-.62.168c-.338 0-.659-.132-.858-.389-.212-.276-.476-.611-1.076-.611-.598 0-.864.337-1.08.614-.197.254-.517.386-.854.386-.224 0-.438-.045-.62-.167-.517-.349-.578-.947-.235-1.388.66-.847 1.483-1.445 2.789-1.445 1.305 0 2.136.6 2.79 1.448zm-14 0c.341.443.235 1.064-.237 1.384a1.082 1.082 0 0 1-.62.168c-.339 0-.659-.132-.858-.389C7.873 13.335 7.61 13 7.01 13c-.598 0-.864.337-1.08.614-.197.254-.517.386-.854.386-.224 0-.438-.045-.62-.167-.518-.349-.579-.947-.235-1.388C4.88 11.598 5.703 11 7.01 11c1.305 0 2.136.6 2.79 1.448zM14 0c7.732 0 14 6.268 14 14s-6.268 14-14 14S0 21.732 0 14 6.268 0 14 0zm8.485 22.485A11.922 11.922 0 0 0 26 14c0-3.205-1.248-6.219-3.515-8.485A11.922 11.922 0 0 0 14 2a11.922 11.922 0 0 0-8.485 3.515A11.922 11.922 0 0 0 2 14c0 3.205 1.248 6.219 3.515 8.485A11.922 11.922 0 0 0 14 26c3.205 0 6.219-1.248 8.485-3.515z"
55-
fillRule="evenodd"
56-
/>
57-
</svg>
56+
<EmojiIcon />
5857
</span>
5958
</div>
6059
</div>
@@ -92,13 +91,18 @@ MessageInputSimple.propTypes = {
9291
doImageUploadRequest: PropTypes.func,
9392
/** Override file upload request */
9493
doFileUploadRequest: PropTypes.func,
94+
/**
95+
* Custom UI component for emoji button in input.
96+
*
97+
* Defaults to and accepts same props as: [EmojiIconLarge](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.js)
98+
* */
99+
EmojiIcon: /** @type {PropTypes.Validator<React.FC>} */ (PropTypes.elementType),
95100
/**
96101
* Custom UI component for send button.
97102
*
98103
* Defaults to and accepts same props as: [SendButton](https://getstream.github.io/stream-chat-react/#sendbutton)
99104
* */
100-
// @ts-ignore
101-
SendButton: PropTypes.elementType,
105+
SendButton: /** @type {PropTypes.Validator<React.FC<import('types').SendButtonProps>>} */ (PropTypes.elementType),
102106
/** Optional UI component prop to override the default List component that displays suggestions */
103107
SuggestionList: /** @type {PropTypes.Validator<React.ElementType<import('types').SuggestionListProps>>} */ (PropTypes.elementType),
104108
};
@@ -109,7 +113,6 @@ MessageInputSimple.defaultProps = {
109113
publishTypingEvent: true,
110114
grow: true,
111115
maxRows: 10,
112-
SendButton: SendButtonComponent,
113116
additionalTextareaProps: {},
114117
};
115118

0 commit comments

Comments
 (0)