quasar
Version:
Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
55 lines (48 loc) • 1.5 kB
JavaScript
import { h, withDirectives } from 'vue'
import { createComponent } from '../../utils/private.create/create.js'
/**
* We are using a sub-component to avoid unnecessary re-renders
* of the QScrollArea content when the scrollbars are interacted with.
*/
export default createComponent({
props: [
'store',
'barStyle',
'verticalBarStyle',
'horizontalBarStyle'
],
setup (props) {
return () => ([
h('div', {
class: props.store.scroll.vertical.barClass.value,
style: [ props.barStyle, props.verticalBarStyle ],
'aria-hidden': 'true',
onMousedown: props.store.onVerticalMousedown
}),
h('div', {
class: props.store.scroll.horizontal.barClass.value,
style: [ props.barStyle, props.horizontalBarStyle ],
'aria-hidden': 'true',
onMousedown: props.store.onHorizontalMousedown
}),
withDirectives(
h('div', {
ref: props.store.scroll.vertical.ref,
class: props.store.scroll.vertical.thumbClass.value,
style: props.store.scroll.vertical.style.value,
'aria-hidden': 'true'
}),
props.store.thumbVertDir
),
withDirectives(
h('div', {
ref: props.store.scroll.horizontal.ref,
class: props.store.scroll.horizontal.thumbClass.value,
style: props.store.scroll.horizontal.style.value,
'aria-hidden': 'true'
}),
props.store.thumbHorizDir
)
])
}
})