Merge branch 'mp/chat-ux-fix' (#3273)

* origin/mp/chat-ux-fix:
  chat: prevent retaining sent message on unmount
  chat: autofocus on desktop, not mobile

Signed-off-by: Matilde Park <matilde.park@sunshinegardens.org>
This commit is contained in:
Matilde Park 2020-08-11 00:05:10 -04:00
commit 3f8d0e2463
3 changed files with 14 additions and 3 deletions

View File

@ -94,7 +94,7 @@ export class ChatScreen extends Component<ChatScreenProps, ChatScreenState> {
props.chatSynced &&
!(props.station in props.chatSynced) &&
props.envelopes.length > 0;
const unreadCount = props.length - props.read;
const unreadMsg = unreadCount > 0 && props.envelopes[unreadCount - 1];
@ -141,6 +141,9 @@ export class ChatScreen extends Component<ChatScreenProps, ChatScreenState> {
s3={props.s3}
placeholder="Message..."
message={this.state.messages.get(props.station) || ""}
deleteMessage={() => this.setState({
messages: this.state.messages.set(props.station, "")
})}
/>
</div>
);

View File

@ -80,11 +80,17 @@ export default class ChatEditor extends Component {
return;
}
this.setState({ message: '' });
this.props.submit(editorMessage);
this.editor.setValue('');
}
messageChange(editor, data, value) {
if (this.state.message !== '' && value == '') {
this.setState({
message: value
});
}
if (value == this.props.message || value == '' || value == ' ') {
return;
}
@ -124,7 +130,7 @@ export default class ChatEditor extends Component {
onChange={(e, d, v) => this.messageChange(e, d, v)}
editorDidMount={(editor) => {
this.editor = editor;
if (BROWSER_REGEX.test(navigator.userAgent)) {
if (!(BROWSER_REGEX.test(navigator.userAgent))) {
editor.focus();
}
}}

View File

@ -10,7 +10,7 @@ const URL_REGEX = new RegExp(String(/^((\w+:\/\/)[-a-zA-Z0-9:@;?&=\/%\+\.\*!'\(\
export class ChatInput extends Component {
constructor(props) {
super(props);
this.state = {
inCodeMode: false,
};
@ -141,6 +141,8 @@ export class ChatInput extends Component {
messages.push(message);
}
props.deleteMessage();
messages.forEach((message) => {
if (message.length > 0) {
message = this.getLetterType(message.join(' '));