From 375fc0c10edb0f256e5d19df238ffc1fdf036038 Mon Sep 17 00:00:00 2001 From: Giulio Cesare Solaroli Date: Thu, 26 Feb 2015 18:39:03 +0100 Subject: [PATCH] Added text area autoresize behaviour. --- .../Clipperz/PM/UI/Components/Cards/Edit.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/Edit.js b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/Edit.js index 0c7b7b0..79c264d 100644 --- a/frontend/delta/js/Clipperz/PM/UI/Components/Cards/Edit.js +++ b/frontend/delta/js/Clipperz/PM/UI/Components/Cards/Edit.js @@ -44,6 +44,35 @@ Clipperz.PM.UI.Components.Cards.Edit = React.createClass({ //---------------------------------------------------------------------------- + componentDidMount: function() { + var textareas; + var autoresize = this.autoresize; + + textareas = [].slice.call(this.getDOMNode().querySelectorAll('textarea')); + textareas.forEach(function(aTextarea) { + aTextarea.addEventListener('input', autoresize, false); + autoresize({target:aTextarea}); + }); + }, + + componentWillUnmount: function() { + var textareas; + var autoresize = this.autoresize; + + textareas = [].slice.call(this.getDOMNode().querySelectorAll('textarea')); + textareas.forEach(function(aTextarea) { + aTextarea.removeEventListener('input', autoresize, false); + }); + }, + + autoresize: function (anEvent) { + anEvent.target.style.height = 'auto'; + anEvent.target.style.height = anEvent.target.scrollHeight+'px'; + window.scrollTo(window.scrollLeft, (anEvent.target.scrollTop + anEvent.target.scrollHeight)); + }, + + //---------------------------------------------------------------------------- + record: function () { return this.props['_record']; },