import Vue from 'vue' import { mapGetters } from 'vuex' import { processHtml } from 'src/services/tiny_post_html_processor/tiny_post_html_processor.service.js' import { convertHtml, getTagName, processTextForEmoji, getAttrs } from 'src/services/mini_html_converter/mini_html_converter.service.js' import { mentionMatchesUrl, extractTagFromUrl } from 'src/services/matcher/matcher.service.js' import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' import StillImage from 'src/components/still-image/still-image.vue' import './rich_content.scss' export default Vue.component('RichContent', { name: 'RichContent', props: { html: { required: true, type: String }, emoji: { required: true, type: Array } }, render (h) { const renderImage = (tag) => { return } const structure = convertHtml(this.html) const processItem = (item) => { if (typeof item === 'string') { if (item.includes(':')) { return processTextForEmoji( item, this.emoji, ({ shortcode, url }) => { return } ) } else { return item } } if (Array.isArray(item)) { const [opener, children] = item const Tag = getTagName(opener) if (Tag === 'img') { return renderImage(opener) } if (children !== undefined) { return { children.map(processItem) } } else { return } } } return
{ structure.map(processItem) }
} })