diff --git a/app/components/post_textbox/post_textbox.js b/app/components/post_textbox/post_textbox.js index a6f5cddc6..38c425355 100644 --- a/app/components/post_textbox/post_textbox.js +++ b/app/components/post_textbox/post_textbox.js @@ -3,7 +3,7 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; -import {Alert, BackHandler, Keyboard, Platform, Text, TextInput, TouchableOpacity, View} from 'react-native'; +import {Alert, BackHandler, Keyboard, Platform, Text, TouchableOpacity, View} from 'react-native'; import {intlShape} from 'react-intl'; import {RequestStatus} from 'mattermost-redux/constants'; import EventEmitter from 'mattermost-redux/utils/event_emitter'; @@ -11,6 +11,7 @@ import EventEmitter from 'mattermost-redux/utils/event_emitter'; import AttachmentButton from 'app/components/attachment_button'; import Autocomplete from 'app/components/autocomplete'; import FileUploadPreview from 'app/components/file_upload_preview'; +import QuickTextInput from 'app/components/quick_text_input'; import {INITIAL_HEIGHT, INSERT_TO_COMMENT, INSERT_TO_DRAFT, IS_REACTION_REGEX, MAX_CONTENT_HEIGHT, MAX_FILE_COUNT} from 'app/constants/post_textbox'; import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme'; @@ -494,7 +495,7 @@ export default class PostTextbox extends PureComponent { {!channelIsReadOnly && attachmentButton} - { + if (!this.input) { + return; + } + + this.input.setNativeProps({text: this.props.value}); + } + + get value() { + return this.input.value; + } + + set value(value) { + this.input.setNativeProps({text: this.props.value}); + } + + focus() { + this.input.focus(); + } + + blur() { + this.input.blur(); + } + + getInput = () => { + return this.input; + }; + + setInput = (input) => { + this.input = input; + } + + render() { + const {value, ...props} = this.props; + + Reflect.deleteProperty(props, 'delayInputUpdate'); + + // Only set the defaultValue since the real one will be updated using componentDidUpdate if necessary + return ( + + ); + } +}