forked from AkkomaGang/akkoma-fe
Merge branch 'hotfix/issues-in-autocomplete' into 'develop'
#355 hotfix/issues in autocomplete Closes #355 See merge request pleroma/pleroma-fe!574
This commit is contained in:
commit
295becd6c8
2 changed files with 19 additions and 21 deletions
|
@ -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
|
||||
|
|
|
@ -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 + ' '))">
|
||||
|
|
Loading…
Reference in a new issue