logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe
commit: 295becd6c8cf8d6f628be74a14d8f28361c1923a
parent: 40b51b659eb89df3c2a841ddf93452314f609678
Author: Shpuld Shpludson <shp@cock.li>
Date:   Thu, 14 Feb 2019 14:50:58 +0000

Merge branch 'hotfix/issues-in-autocomplete' into 'develop'

#355 hotfix/issues in autocomplete

Closes #355

See merge request pleroma/pleroma-fe!574

Diffstat:

Msrc/components/autocomplete_input/autocomplete_input.js12+++++-------
Msrc/components/autocomplete_input/autocomplete_input.vue28++++++++++++++--------------
2 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/src/components/autocomplete_input/autocomplete_input.js b/src/components/autocomplete_input/autocomplete_input.js @@ -24,8 +24,7 @@ const AutoCompleteInput = { data () { return { caret: 0, - highlighted: 0, - text: this.value + highlighted: 0 } }, computed: { @@ -42,7 +41,7 @@ const AutoCompleteInput = { return (this.wordAtCaret || {}).word || '' }, wordAtCaret () { - const word = Completion.wordAtPosition(this.text, this.caret - 1) || {} + const word = Completion.wordAtPosition(this.value, this.caret - 1) || {} return word }, candidates () { @@ -113,8 +112,8 @@ const AutoCompleteInput = { } }, replace (replacement) { - this.text = Completion.replaceWord(this.text, this.wordAtCaret, replacement) - const el = this.$el.querySelector('textarea') + this.$emit('input', Completion.replaceWord(this.value, this.wordAtCaret, replacement)) + const el = this.$el.querySelector('textarea') || this.$el.querySelector('input') el.focus() this.caret = 0 }, @@ -125,8 +124,7 @@ const AutoCompleteInput = { e.preventDefault() const candidate = this.candidates[this.highlighted] const replacement = candidate.utf || (candidate.screen_name + ' ') - this.text = Completion.replaceWord(this.text, this.wordAtCaret, replacement) - this.$emit('input', this.text) + this.$emit('input', Completion.replaceWord(this.value, this.wordAtCaret, replacement)) const el = this.$el.querySelector('textarea') || this.$el.querySelector('input') el.focus() this.caret = 0 diff --git a/src/components/autocomplete_input/autocomplete_input.vue b/src/components/autocomplete_input/autocomplete_input.vue @@ -4,8 +4,8 @@ v-if="multiline" ref="textarea" rows="1" - :value="text" :class="classObj" :id="id" :placeholder="placeholder" - @input="text = $event.target.value, $emit('input', $event.target.value), autoResize && resize($event)" + :value="value" :class="classObj" :id="id" :placeholder="placeholder" + @input="$emit('input', $event.target.value), autoResize && resize($event)" @click="setCaret" @keyup="setCaret" @keydown.down="cycleForward" @@ -13,17 +13,17 @@ @keydown.shift.tab="cycleBackward" @keydown.tab="cycleForward" @keydown.enter="replaceCandidate" - @drop="drop && drop()" - @dragover.prevent="dragoverPrevent && dragoverPrevent()" - @paste="paste && paste()" - @keydown.meta.enter="keydownMetaEnter && keydownMetaEnter()" - @keyup.ctrl.enter="keyupCtrlEnter && keyupCtrlEnter()"> + @drop="drop && drop($event)" + @dragover.prevent="dragoverPrevent && dragoverPrevent($event)" + @paste="paste && paste($event)" + @keydown.meta.enter="keydownMetaEnter && keydownMetaEnter($event)" + @keyup.ctrl.enter="keyupCtrlEnter && keyupCtrlEnter($event)"> </textarea> <input v-else ref="textarea" - :value="text" :class="classObj" :id="id" :placeholder="placeholder" - @input="text = $event.target.value, $emit('input', $event.target.value), autoResize && resize($event)" + :value="value" :class="classObj" :id="id" :placeholder="placeholder" + @input="$emit('input', $event.target.value), autoResize && resize($event)" @click="setCaret" @keyup="setCaret" @keydown.down="cycleForward" @@ -31,11 +31,11 @@ @keydown.shift.tab="cycleBackward" @keydown.tab="cycleForward" @keydown.enter="replaceCandidate" - @drop="drop && drop()" - @dragover.prevent="dragoverPrevent && dragoverPrevent()" - @paste="paste && paste()" - @keydown.meta.enter="keydownMetaEnter && keydownMetaEnter()" - @keyup.ctrl.enter="keyupCtrlEnter && keyupCtrlEnter()"/> + @drop="drop && drop($event)" + @dragover.prevent="dragoverPrevent && dragoverPrevent($event)" + @paste="paste && paste($event)" + @keydown.meta.enter="keydownMetaEnter && keydownMetaEnter($event)" + @keyup.ctrl.enter="keyupCtrlEnter && keyupCtrlEnter($event)"/> <div style="position:relative;" v-if="candidates"> <div class="autocomplete-panel"> <div v-for="candidate in candidates" @click="replace(candidate.utf || (candidate.screen_name + ' '))">