Fix poor typing performance on iOS devices.

Этот коммит содержится в:
JoramWilander
2015-09-03 12:28:19 -04:00
родитель f3d3658ef4
Коммит e4336bbc84
2 изменённых файлов: 9 добавлений и 8 удалений

Просмотреть файл

@@ -117,7 +117,6 @@ export default class CreatePost extends React.Component {
Client.createPost(post, channel, Client.createPost(post, channel,
function handlePostSuccess(data) { function handlePostSuccess(data) {
this.resizePostHolder();
AsyncClient.getPosts(); AsyncClient.getPosts();
let member = ChannelStore.getMember(channel.id); let member = ChannelStore.getMember(channel.id);
@@ -129,7 +128,7 @@ export default class CreatePost extends React.Component {
type: ActionTypes.RECIEVED_POST, type: ActionTypes.RECIEVED_POST,
post: data post: data
}); });
}.bind(this), },
function handlePostError(err) { function handlePostError(err) {
let state = {}; let state = {};
@@ -149,9 +148,6 @@ export default class CreatePost extends React.Component {
); );
} }
} }
componentDidUpdate() {
this.resizePostHolder();
}
postMsgKeyPress(e) { postMsgKeyPress(e) {
if (e.which === 13 && !e.shiftKey && !e.altKey) { if (e.which === 13 && !e.shiftKey && !e.altKey) {
e.preventDefault(); e.preventDefault();
@@ -166,7 +162,6 @@ export default class CreatePost extends React.Component {
} }
} }
handleUserInput(messageText) { handleUserInput(messageText) {
this.resizePostHolder();
this.setState({messageText: messageText}); this.setState({messageText: messageText});
let draft = PostStore.getCurrentDraft(); let draft = PostStore.getCurrentDraft();
@@ -317,6 +312,7 @@ export default class CreatePost extends React.Component {
<Textbox <Textbox
onUserInput={this.handleUserInput} onUserInput={this.handleUserInput}
onKeyPress={this.postMsgKeyPress} onKeyPress={this.postMsgKeyPress}
onHeightChange={this.resizePostHolder}
messageText={this.state.messageText} messageText={this.state.messageText}
createMessage='Write a message...' createMessage='Write a message...'
channelId={this.state.channelId} channelId={this.state.channelId}

Просмотреть файл

@@ -121,7 +121,6 @@ export default class Textbox extends React.Component {
} }
this.addedMention = false; this.addedMention = false;
this.refs.commands.getSuggestedCommands(nextProps.messageText); this.refs.commands.getSuggestedCommands(nextProps.messageText);
this.resize();
} }
updateMentionTab(mentionText) { updateMentionTab(mentionText) {
// using setTimeout so dispatch isn't called during an in progress dispatch // using setTimeout so dispatch isn't called during an in progress dispatch
@@ -135,7 +134,6 @@ export default class Textbox extends React.Component {
} }
handleChange() { handleChange() {
this.props.onUserInput(React.findDOMNode(this.refs.message).value); this.props.onUserInput(React.findDOMNode(this.refs.message).value);
this.resize();
} }
handleKeyPress(e) { handleKeyPress(e) {
const text = React.findDOMNode(this.refs.message).value; const text = React.findDOMNode(this.refs.message).value;
@@ -244,6 +242,8 @@ export default class Textbox extends React.Component {
const e = React.findDOMNode(this.refs.message); const e = React.findDOMNode(this.refs.message);
const w = React.findDOMNode(this.refs.wrapper); const w = React.findDOMNode(this.refs.wrapper);
let prevHeight = $(e).height();
const lht = parseInt($(e).css('lineHeight'), 10); const lht = parseInt($(e).css('lineHeight'), 10);
const lines = e.scrollHeight / lht; const lines = e.scrollHeight / lht;
let mod = 15; let mod = 15;
@@ -259,6 +259,10 @@ export default class Textbox extends React.Component {
$(e).css({height: 'auto', 'overflow-y': 'scroll'}).height(167); $(e).css({height: 'auto', 'overflow-y': 'scroll'}).height(167);
$(w).css({height: 'auto'}).height(167); $(w).css({height: 'auto'}).height(167);
} }
if (prevHeight !== $(e).height()) {
this.props.onHeightChange();
}
} }
handleFocus() { handleFocus() {
const elm = React.findDOMNode(this.refs.message); const elm = React.findDOMNode(this.refs.message);
@@ -316,5 +320,6 @@ Textbox.propTypes = {
messageText: React.PropTypes.string.isRequired, messageText: React.PropTypes.string.isRequired,
onUserInput: React.PropTypes.func.isRequired, onUserInput: React.PropTypes.func.isRequired,
onKeyPress: React.PropTypes.func.isRequired, onKeyPress: React.PropTypes.func.isRequired,
onHeightChange: React.PropTypes.func.isRequired,
createMessage: React.PropTypes.string.isRequired createMessage: React.PropTypes.string.isRequired
}; };