From 600b2d5bbd4ad45d42366fd0d60c0d991b006aed Mon Sep 17 00:00:00 2001 From: Henry Jameson <me@hjkos.com> Date: Sun, 15 Apr 2018 18:38:10 +0300 Subject: [PATCH 1/3] =?UTF-8?q?Added=20resizing=20inputbox=20on=20focus=20?= =?UTF-8?q?so=20that=20replying=20to=20The=20Discourse=E2=84=A2=20is=20les?= =?UTF-8?q?s=20painful?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../post_status_form/post_status_form.vue | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 69234d66..4107522d 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -1,10 +1,25 @@ <template> - <div class="post-status-form"> - <form @submit.prevent="postStatus(newStatus)"> - <div class="form-group" > - <textarea @click="setCaret" @keyup="setCaret" v-model="newStatus.status" :placeholder="$t('post_status.default')" rows="1" class="form-control" @keydown.down="cycleForward" @keydown.up="cycleBackward" @keydown.shift.tab="cycleBackward" @keydown.tab="cycleForward" @keydown.enter="replaceCandidate" @keydown.meta.enter="postStatus(newStatus)" @keyup.ctrl.enter="postStatus(newStatus)" @drop="fileDrop" @dragover.prevent="fileDrag" @input="resize" @paste="paste"></textarea> - </div> - <div style="position:relative;" v-if="candidates"> +<div class="post-status-form"> + <form @submit.prevent="postStatus(newStatus)"> + <div class="form-group" > + <textarea + @click="setCaret" + @keyup="setCaret" v-model="newStatus.status" :placeholder="$t('post_status.default')" rows="1" class="form-control" + @keydown.down="cycleForward" + @keydown.up="cycleBackward" + @keydown.shift.tab="cycleBackward" + @keydown.tab="cycleForward" + @keydown.enter="replaceCandidate" + @keydown.meta.enter="postStatus(newStatus)" + @keyup.ctrl.enter="postStatus(newStatus)" + @drop="fileDrop" + @dragover.prevent="fileDrag" + @input="resize" + @focus="resize" + @paste="paste"> + </textarea> + </div> + <div style="position:relative;" v-if="candidates"> <div class="autocomplete-panel"> <div v-for="candidate in candidates" @click="replace(candidate.utf || (candidate.screen_name + ' '))"> <div v-if="candidate.highlighted" class="autocomplete"> From e1dce2c5af692ee8938e0c308df3e5bb66b5634c Mon Sep 17 00:00:00 2001 From: Henry Jameson <me@hjkos.com> Date: Sun, 15 Apr 2018 19:05:16 +0300 Subject: [PATCH 2/3] better approach --- src/components/post_status_form/post_status_form.js | 13 +++++++++---- .../post_status_form/post_status_form.vue | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index c63c308c..5e59b0e8 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -28,6 +28,10 @@ const PostStatusForm = { components: { MediaUpload }, + mounted () { + console.log(this.$refs) + this.resize(this.$refs.textarea) + }, data () { let statusText = '' @@ -235,10 +239,11 @@ const PostStatusForm = { e.dataTransfer.dropEffect = 'copy' }, resize (e) { - e.target.style.height = 'auto' - e.target.style.height = `${e.target.scrollHeight - 10}px` - if (e.target.value === '') { - e.target.style.height = '16px' + const target = e.target || e + target.style.height = 'auto' + target.style.height = `${target.scrollHeight - 10}px` + if (target.value === '') { + target.style.height = '16px' } }, clearError () { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 4107522d..88627e3a 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -3,6 +3,7 @@ <form @submit.prevent="postStatus(newStatus)"> <div class="form-group" > <textarea + ref="textarea" @click="setCaret" @keyup="setCaret" v-model="newStatus.status" :placeholder="$t('post_status.default')" rows="1" class="form-control" @keydown.down="cycleForward" @@ -15,7 +16,6 @@ @drop="fileDrop" @dragover.prevent="fileDrag" @input="resize" - @focus="resize" @paste="paste"> </textarea> </div> From e9e37a034c5df99c5e3121887eb28af8f39db87f Mon Sep 17 00:00:00 2001 From: Henry Jameson <me@hjkos.com> Date: Sun, 15 Apr 2018 20:30:06 +0300 Subject: [PATCH 3/3] fml --- src/components/post_status_form/post_status_form.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 5e59b0e8..3348445f 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -29,7 +29,6 @@ const PostStatusForm = { MediaUpload }, mounted () { - console.log(this.$refs) this.resize(this.$refs.textarea) }, data () {