vuepress-theme-plume/theme/src/client/globalComponents.ts

47 lines
1.4 KiB
TypeScript

import VPBadge from '@theme/global/VPBadge.vue'
import VPCard from '@theme/global/VPCard.vue'
import VPCardGrid from '@theme/global/VPCardGrid.vue'
import VPCardMasonry from '@theme/global/VPCardMasonry.vue'
import VPImageCard from '@theme/global/VPImageCard.vue'
import VPLinkCard from '@theme/global/VPLinkCard.vue'
import VPHomeBox from '@theme/Home/VPHomeBox.vue'
import VPButton from '@theme/VPButton.vue'
import VPIcon from '@theme/VPIcon.vue'
import { hasGlobalComponent } from '@vuepress/helper/client'
import { type App, h, resolveComponent } from 'vue'
export function globalComponents(app: App) {
app.component('Badge', VPBadge)
app.component('VPBadge', VPBadge)
app.component('VPCard', VPCard)
app.component('Card', VPCard)
app.component('VPCardGrid', VPCardGrid)
app.component('CardGrid', VPCardGrid)
app.component('VPLinkCard', VPLinkCard)
app.component('LinkCard', VPLinkCard)
app.component('VPImageCard', VPImageCard)
app.component('ImageCard', VPImageCard)
app.component('VPCardMasonry', VPCardMasonry)
app.component('CardMasonry', VPCardMasonry)
app.component('Icon', VPIcon)
app.component('VPIcon', VPIcon)
app.component('VPButton', VPButton)
app.component('HomeBox', VPHomeBox)
app.component('VPHomeBox', VPHomeBox)
app.component('DocComment', (props) => {
if (hasGlobalComponent('CommentService')) {
return h(resolveComponent('CommentService'), props)
}
return null
})
}