elk/components/common/CommonScrollIntoView.vue

18 lines
364 B
Vue
Raw Normal View History

<script setup lang="ts">
const { as = 'div', active } = defineProps<{ as: any; active: boolean }>()
const el = ref()
watch(() => active, (active) => {
const _el = unrefElement(el)
if (active && _el)
_el.scrollIntoView({ block: 'nearest', inline: 'start' })
})
</script>
<template>
<component :is="as" ref="el">
<slot />
</component>
</template>