parent
209b36c73b
commit
6bfccc4993
|
@ -83,7 +83,8 @@
|
|||
}
|
||||
})
|
||||
this.observe('searchText', async searchText => {
|
||||
if (!searchText) {
|
||||
let { thisComposeFocused } = this.get()
|
||||
if (!thisComposeFocused || !searchText) {
|
||||
return
|
||||
}
|
||||
let type = searchText.startsWith('@') ? 'account' : 'emoji'
|
||||
|
@ -98,6 +99,10 @@
|
|||
})
|
||||
})
|
||||
this.observe('shown', shown => {
|
||||
let { thisComposeFocused } = this.get()
|
||||
if (!thisComposeFocused) {
|
||||
return
|
||||
}
|
||||
this.store.set({composeAutosuggestionShown: shown})
|
||||
})
|
||||
},
|
||||
|
@ -138,7 +143,10 @@
|
|||
searchResults: ($composeAutosuggestionSearchResults) => $composeAutosuggestionSearchResults || [],
|
||||
type: ($composeAutosuggestionType) => $composeAutosuggestionType || 'account',
|
||||
selected: ($composeAutosuggestionSelected) => $composeAutosuggestionSelected || 0,
|
||||
searchText: (text, composeSelectionStartDeferred) => {
|
||||
searchText: (text, composeSelectionStartDeferred, thisComposeFocused) => {
|
||||
if (!thisComposeFocused) {
|
||||
return
|
||||
}
|
||||
let selectionStart = composeSelectionStartDeferred || 0
|
||||
if (!text || selectionStart < MIN_PREFIX_LENGTH) {
|
||||
return
|
||||
|
|
|
@ -93,14 +93,23 @@
|
|||
stop('autosize.destroy()')
|
||||
},
|
||||
onBlur () {
|
||||
this.store.set({composeFocused: null})
|
||||
this.store.set({
|
||||
composeFocused: null,
|
||||
composeSelectionStart: null,
|
||||
composeAutosuggestionSearchText: null,
|
||||
composeAutosuggestionSearchResults: null
|
||||
})
|
||||
},
|
||||
onFocus () {
|
||||
let { realm } = this.get()
|
||||
this.store.set({composeFocused: realm})
|
||||
},
|
||||
onSelectionChange (selectionStart) {
|
||||
let { realm } = this.get()
|
||||
let { composeFocused } = this.store.get()
|
||||
if (realm === composeFocused) {
|
||||
this.store.set({composeSelectionStart: selectionStart})
|
||||
}
|
||||
},
|
||||
onKeydown (e) {
|
||||
let { keyCode } = e
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {
|
||||
composeInput, getNthAutosuggestionResult, getNthComposeReplyInput, getNthReplyButton, getNthStatus
|
||||
composeInput, getNthAutosuggestionResult, getNthComposeReplyInput, getNthReplyButton, getNthStatus, sleep
|
||||
} from '../utils'
|
||||
import { Selector as $ } from 'testcafe'
|
||||
import { foobarRole } from '../roles'
|
||||
|
@ -93,3 +93,19 @@ test('autosuggest only shows for one input', async t => {
|
|||
.typeText(getNthComposeReplyInput(0), 'uu')
|
||||
.expect($('.compose-autosuggest.shown').exists).notOk()
|
||||
})
|
||||
|
||||
test('autosuggest only shows for one input part 2', async t => {
|
||||
await t.useRole(foobarRole)
|
||||
.hover(composeInput)
|
||||
.typeText(composeInput, '@adm')
|
||||
.expect($('.compose-autosuggest.shown').exists).ok()
|
||||
.expect(getNthAutosuggestionResult(1).innerText).contains('@admin')
|
||||
.hover(getNthStatus(0))
|
||||
.click(getNthReplyButton(0))
|
||||
.selectText(getNthComposeReplyInput(0))
|
||||
.pressKey('delete')
|
||||
.typeText(getNthComposeReplyInput(0), '@dd')
|
||||
await sleep(1000)
|
||||
await t.pressKey('backspace')
|
||||
.expect($('.compose-autosuggest.shown').exists).notOk()
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue