quasar
Version:
Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
50 lines (39 loc) • 1.11 kB
JavaScript
import { computed, getCurrentInstance } from 'vue'
import useDark, {
useDarkProps
} from '../../composables/private.use-dark/use-dark.js'
import usePanel, {
usePanelProps,
usePanelEmits
} from '../../composables/private.use-panel/use-panel.js'
import { createComponent } from '../../utils/private.create/create.js'
import { hDir } from '../../utils/private.render/render.js'
export default createComponent({
name: 'QTabPanels',
props: {
...usePanelProps,
...useDarkProps
},
emits: usePanelEmits,
setup(props, { slots }) {
const vm = getCurrentInstance()
const isDark = useDark(props, vm.proxy.$q)
const { updatePanelsList, getPanelContent, panelDirectives } = usePanel()
const classes = computed(
() =>
'q-tab-panels q-panel-parent' +
(isDark.value === true ? ' q-tab-panels--dark q-dark' : '')
)
return () => {
updatePanelsList(slots)
return hDir(
'div',
{ class: classes.value },
getPanelContent(),
'pan',
props.swipeable,
() => panelDirectives.value
)
}
}
})