@koishijs/client
Version:
Koishi Console Client
25 lines (22 loc) • 621 B
text/typescript
import { App, defineComponent, h } from 'vue'
import { RouterLink } from 'vue-router'
import { useContext } from '../context'
const KActivityLink = defineComponent({
props: {
id: String,
},
setup(props, { slots }) {
const ctx = useContext()
return () => {
const activity = ctx.$router.pages[props.id]
return h(RouterLink, {
to: ctx.$router.cache[activity?.id] || activity?.path.replace(/:.+/, ''),
}, {
default: () => slots.default?.() ?? activity?.name,
})
}
},
})
export default function (app: App) {
app.component('k-activity-link', KActivityLink)
}