Skip to content

Commit f396a81

Browse files
authored
fix: await word replace before submitting message (#2332)
### 🎯 Goal Fixes a race condition with emoji auto-replacement when submitting a message. ### πŸ›  Implementation details `_replaceWord` is an async method, we should await it before submitting. ### 🎨 UI Changes Before: https://github.com/GetStream/stream-chat-react/assets/975978/d989b491-d301-43c0-9386-ffc41f00f4ee After: https://github.com/GetStream/stream-chat-react/assets/975978/3fcf49bf-84e2-46cc-92f4-9eafd2f1c2b0 ### To-Do - [ ] Bump SDK in website demo
1 parent 17f6b0d commit f396a81

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

Diff for: β€Žsrc/components/AutoCompleteTextarea/Textarea.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,14 @@ export class ReactTextareaAutocomplete extends React.Component {
113113
if (event.key === 'Escape') return this._closeAutocomplete();
114114
};
115115

116-
_onEnter = (event) => {
116+
_onEnter = async (event) => {
117117
if (!this.textareaRef) return;
118118

119119
const trigger = this.state.currentTrigger;
120120

121121
if (!trigger || !this.state.data) {
122122
// trigger a submit
123-
this._replaceWord();
123+
await this._replaceWord();
124124
if (this.textareaRef) {
125125
this.textareaRef.selectionEnd = 0;
126126
}

Diff for: β€Žsrc/components/MessageInput/__tests__/MessageInput.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ function axeNoViolations(container) {
826826
}),
827827
);
828828

829-
act(() => fireEvent.keyDown(input, { key: 'Enter' }));
829+
await act(() => fireEvent.keyDown(input, { key: 'Enter' }));
830830

831831
expect(submitHandler).toHaveBeenCalledWith(
832832
expect.objectContaining({

0 commit comments

Comments
Β (0)