2022-11-25 16:12:49 +09:00
|
|
|
import type { Emoji } from 'masto'
|
|
|
|
|
|
|
|
defineOptions({
|
|
|
|
name: 'ContentRich',
|
|
|
|
})
|
|
|
|
|
2022-12-18 06:01:20 +09:00
|
|
|
const { content, emojis, markdown = true } = defineProps<{
|
2022-11-25 16:12:49 +09:00
|
|
|
content: string
|
2022-12-18 06:01:20 +09:00
|
|
|
markdown?: boolean
|
2022-11-25 16:57:39 +09:00
|
|
|
emojis?: Emoji[]
|
2022-11-25 16:12:49 +09:00
|
|
|
}>()
|
|
|
|
|
2022-12-28 03:38:57 +09:00
|
|
|
const useEmojis = computed(() => {
|
|
|
|
const result: Emoji[] = []
|
|
|
|
if (emojis)
|
|
|
|
result.push(...emojis)
|
|
|
|
|
|
|
|
result.push(...currentCustomEmojis.value.emojis)
|
|
|
|
|
|
|
|
return emojisArrayToObject(result)
|
|
|
|
})
|
|
|
|
|
2022-11-25 16:12:49 +09:00
|
|
|
export default () => h(
|
2022-11-27 09:19:45 +09:00
|
|
|
'span',
|
2022-11-25 22:21:02 +09:00
|
|
|
{ class: 'content-rich' },
|
2022-12-18 06:01:20 +09:00
|
|
|
contentToVNode(content, {
|
2022-12-28 03:38:57 +09:00
|
|
|
emojis: useEmojis.value,
|
2022-12-18 06:01:20 +09:00
|
|
|
markdown,
|
|
|
|
}),
|
2022-11-25 16:12:49 +09:00
|
|
|
)
|