diff options
author | Francesco <firefelix@gmail.com> | 2015-06-19 13:23:52 +0200 |
---|---|---|
committer | Francesco <firefelix@gmail.com> | 2015-06-19 13:30:56 +0200 |
commit | dc8075314bdf86502663fe2dbf916910d0d2b6c5 (patch) | |
tree | 14f885457558ff9a3d49040ed119a4a4d8d46e74 /src | |
parent | d4867b2d0bc99f50781c8d577b054d034b567623 (diff) | |
download | react-autosize-textarea-dc8075314bdf86502663fe2dbf916910d0d2b6c5.zip react-autosize-textarea-dc8075314bdf86502663fe2dbf916910d0d2b6c5.tar.gz react-autosize-textarea-dc8075314bdf86502663fe2dbf916910d0d2b6c5.tar.bz2 |
Fix: was removing autosize listener with unmounted component
due to setTimeout() used needed by update event
Diffstat (limited to 'src')
-rw-r--r-- | src/TextareaAutosize.js | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/TextareaAutosize.js b/src/TextareaAutosize.js index 09f67ff..01b24b4 100644 --- a/src/TextareaAutosize.js +++ b/src/TextareaAutosize.js @@ -31,10 +31,15 @@ const TextareaAutosize = React.createClass({ this.dispatchEvent(DESTROY); }, - dispatchEvent(EVENT_TYPE) { + dispatchEvent(EVENT_TYPE, defer) { const event = document.createEvent('Event'); event.initEvent(EVENT_TYPE, true, false); - setTimeout(() => this.refs.textarea.getDOMNode().dispatchEvent(event)); + const dispatch = () => this.refs.textarea.getDOMNode().dispatchEvent(event); + if (defer) { + setTimeout(dispatch); + } else { + dispatch(); + } }, getValue(props) { @@ -53,10 +58,10 @@ const TextareaAutosize = React.createClass({ componentWillReceiveProps(nextProps) { if (this.getValue(nextProps) !== this.getValue(this.props)) { - this.dispatchEvent(UPDATE); + this.dispatchEvent(UPDATE, true); } }, }); -module.exports = TextareaAutosize; +export default TextareaAutosize;
\ No newline at end of file |