Scroll active tab header into view in emoji picker

このコミットが含まれているのは:
Tusooa Zhu 2022-01-08 02:17:59 -05:00
コミット 38861fc6cc
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 7B467EDE43A08224
2個のファイルの変更23行の追加1行の削除

ファイルの表示

@ -87,8 +87,26 @@ const EmojiPicker = {
this.activeGroup = group.id
}
})
this.scrollHeader()
})
},
scrollHeader () {
// Scroll the active tab's header into view
const headerRef = this.$refs['group-header-' + this.activeGroup][0]
const left = headerRef.offsetLeft
const right = left + headerRef.offsetWidth
const headerCont = this.$refs.header
const currentScroll = headerCont.scrollLeft
const currentScrollRight = currentScroll + headerCont.clientWidth
const setScroll = s => { headerCont.scrollLeft = s }
const margin = 7 // .emoji-tabs-item: padding
if (left - margin < currentScroll) {
setScroll(left - margin)
} else if (right + margin > currentScrollRight) {
setScroll(right + margin - headerCont.clientWidth)
}
},
highlight (key) {
const ref = this.$refs['group-' + key]
const top = ref.offsetTop

ファイルの表示

@ -3,9 +3,13 @@
class="emoji-picker panel panel-default panel-body"
>
<div class="heading">
<span class="emoji-tabs">
<span
ref="header"
class="emoji-tabs"
>
<span
v-for="group in filteredEmojiGroups"
:ref="'group-header-' + group.id"
:key="group.id"
class="emoji-tabs-item"
:class="{