Add shortcut key for auto-complete
This commit is contained in:
parent
fc71cd41af
commit
dec99af82d
@ -146,6 +146,7 @@ import { MUTATION_TYPES } from '@/store/TimelineSpace/Compose'
|
|||||||
import ReceiveDrop from './ReceiveDrop.vue'
|
import ReceiveDrop from './ReceiveDrop.vue'
|
||||||
import Quote from './Compose/Quote.vue'
|
import Quote from './Compose/Quote.vue'
|
||||||
import suggestText from '@/utils/suggestText'
|
import suggestText from '@/utils/suggestText'
|
||||||
|
import { useMagicKeys, whenever } from '@vueuse/core'
|
||||||
|
|
||||||
type Expire = {
|
type Expire = {
|
||||||
label: string
|
label: string
|
||||||
@ -165,6 +166,14 @@ export default defineComponent({
|
|||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
const i18n = useI18next()
|
const i18n = useI18next()
|
||||||
|
const { up, down, enter, escape } = useMagicKeys({
|
||||||
|
passive: false,
|
||||||
|
onEventFired(e) {
|
||||||
|
if (e.key === 'Enter' && suggestOpened.value) e.preventDefault()
|
||||||
|
if (e.key === 'ArrowUp' && suggestOpened.value) e.preventDefault()
|
||||||
|
if (e.key === 'ArrowDown' && suggestOpened.value) e.preventDefault()
|
||||||
|
}
|
||||||
|
})
|
||||||
const space = 'TimelineSpace/Compose'
|
const space = 'TimelineSpace/Compose'
|
||||||
const win = (window as any) as MyWindow
|
const win = (window as any) as MyWindow
|
||||||
|
|
||||||
@ -308,6 +317,19 @@ export default defineComponent({
|
|||||||
await suggest(current.status)
|
await suggest(current.status)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
whenever(up, () => {
|
||||||
|
if (suggestOpened.value) suggestHighlight(highlightedIndex.value - 1)
|
||||||
|
})
|
||||||
|
whenever(down, () => {
|
||||||
|
if (suggestOpened.value) suggestHighlight(highlightedIndex.value + 1)
|
||||||
|
})
|
||||||
|
whenever(enter, () => {
|
||||||
|
if (suggestOpened.value) selectCurrentItem()
|
||||||
|
})
|
||||||
|
whenever(escape, () => {
|
||||||
|
closeSuggest()
|
||||||
|
})
|
||||||
|
|
||||||
const post = async () => {
|
const post = async () => {
|
||||||
if (!client.value) {
|
if (!client.value) {
|
||||||
return
|
return
|
||||||
@ -661,6 +683,11 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const selectCurrentItem = () => {
|
||||||
|
const item = filteredSuggestion.value[highlightedIndex.value]
|
||||||
|
insertItem(item)
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
form,
|
form,
|
||||||
post,
|
post,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user