elk/components/content/ContentRich.setup.ts
2022-12-27 19:38:57 +01:00

32 lines
660 B
TypeScript

import type { Emoji } from 'masto'
import { emojisArrayToObject } from '~/composables/utils'
import { currentCustomEmojis } from '~/composables/emojis'
defineOptions({
name: 'ContentRich',
})
const { content, emojis, markdown = true } = defineProps<{
content: string
markdown?: boolean
emojis?: Emoji[]
}>()
const useEmojis = computed(() => {
const result: Emoji[] = []
if (emojis)
result.push(...emojis)
result.push(...currentCustomEmojis.value.emojis)
return emojisArrayToObject(result)
})
export default () => h(
'span',
{ class: 'content-rich' },
contentToVNode(content, {
emojis: useEmojis.value,
markdown,
}),
)