From ec15ad9aa64c3bd6f2fe566e7a546813d6b3987d Mon Sep 17 00:00:00 2001 From: KDSBrowne <kert.browne85@gmail.com> Date: Fri, 28 Dec 2018 21:48:59 +0000 Subject: [PATCH] remove default focus state on chat input field --- .../chat/message-form/component.jsx | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx index 85d0c213b7..b3eb989e95 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/message-form/component.jsx @@ -47,16 +47,6 @@ class MessageForm extends PureComponent { this.handleSubmit = this.handleSubmit.bind(this); } - componentDidMount() { - this.textarea.focus(); - } - - componentDidUpdate(prevProps) { - if (prevProps.chatName !== this.props.chatName) { - this.textarea.focus(); - } - } - handleMessageKeyDown(e) { // TODO Prevent send message pressing enter on mobile and/or virtual keyboard if (e.keyCode === 13 && !e.shiftKey) { @@ -102,13 +92,16 @@ class MessageForm extends PureComponent { handleSubmit(e) { e.preventDefault(); - const { disabled, minMessageLength, maxMessageLength } = this.props; - let message = this.state.message.trim(); + const { + disabled, minMessageLength, maxMessageLength, handleSendMessage, + } = this.props; + const { message } = this.state; + let msg = message.trim(); if (disabled - || message.length === 0 - || message.length < minMessageLength - || message.length > maxMessageLength) { + || msg.length === 0 + || msg.length < minMessageLength + || msg.length > maxMessageLength) { this.setState({ hasErrors: true }); return false; } @@ -116,10 +109,10 @@ class MessageForm extends PureComponent { // Sanitize. See: http://shebang.brandonmintern.com/foolproof-html-escaping-in-javascript/ const div = document.createElement('div'); - div.appendChild(document.createTextNode(message)); - message = div.innerHTML; + div.appendChild(document.createTextNode(msg)); + msg = div.innerHTML; - return this.props.handleSendMessage(message) + return handleSendMessage(msg) .then(() => this.setState({ message: '', hasErrors: false, @@ -128,24 +121,23 @@ class MessageForm extends PureComponent { render() { const { - intl, chatTitle, chatName, disabled, + intl, chatTitle, chatName, disabled, className, chatAreaId, } = this.props; - const { hasErrors, error } = this.state; + const { hasErrors, error, message } = this.state; return ( <form ref={(ref) => { this.form = ref; }} - className={cx(this.props.className, styles.form)} + className={cx(className, styles.form)} onSubmit={this.handleSubmit} > <div className={styles.wrapper}> <TextareaAutosize className={styles.input} id="message-input" - innerRef={ref => (this.textarea = ref)} placeholder={intl.formatMessage(messages.inputPlaceholder, { 0: chatName })} - aria-controls={this.props.chatAreaId} + aria-controls={chatAreaId} aria-label={intl.formatMessage(messages.inputLabel, { 0: chatTitle })} aria-invalid={hasErrors ? 'true' : 'false'} aria-describedby={hasErrors ? 'message-input-error' : null} @@ -153,7 +145,7 @@ class MessageForm extends PureComponent { autoComplete="off" spellCheck="true" disabled={disabled} - value={this.state.message} + value={message} onChange={this.handleMessageChange} onKeyDown={this.handleMessageKeyDown} /> -- GitLab