Hello ๐
We recently configured our Stencil components library to deliver a Vue.js wrapper. Everything works as expected when using Vue templates:
<script setup lang="ts">
import { RouterLink, RouterView, useRoute, useRouter } from 'vue-router'
import type { BqTabGroupCustomEvent } from 'stencil-components'
const route = useRoute();
const router = useRouter()
const onTabChange = (e: BqTabGroupCustomEvent<{ target: HTMLBqTabElement }>) => {
const activeTab = e.detail.target
router.push({ path: activeTab.controls })
}
</script>
<template>
<bq-tab-group @bqChange="onTabChange" :value="route.name">
<RouterLink to="/" v-slot="{ navigate, isExactActive }" custom>
<bq-tab tab-id="home" controls="/" @bqClick="navigate" :active="isExactActive">
Home
</bq-tab>
</RouterLink>
...
</bq-tab-group>
</template>
However, if we use our components with Vue and JSX, we notice that the custom events are not emitted.
<script lang="tsx">
export default defineComponent({
name: 'App',
setup() {
const router = useRouter()
const route = useRoute()
return { router, route }
},
render() {
return (
<div class="wrapper">
<HelloWorld msg="You did it!" />
<BqTabGroup>
<RouterLink to="/about" custom>
<BqTab onBqClick={() => this.router.push('/')} tabId="home" controls="/">
Home
</BqTab>
</RouterLink>
<RouterLink to="/about" custom>
<BqTab tabId="about" controls="/about">
About
</BqTab>
</RouterLink>
</BqTabGroup>
</div>
)
}
})
<script>
Does anyone have an idea why? Thank you ๐ so much in advance.