UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 5.55 kB
{"version":3,"file":"comment.mjs","sources":["../../src/comment/comment.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport props from './props';\n\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport Button from '../button';\nimport isString from 'lodash/isString';\nimport isArray from 'lodash/isArray';\n\nexport default defineComponent({\n name: 'XComment',\n props,\n setup() {\n const COMPONENT_NAME = usePrefixClass('comment');\n const renderTNodeJSX = useTNodeJSX();\n\n return () => {\n const reply = renderTNodeJSX('reply');\n const author = renderTNodeJSX('author');\n const datetime = renderTNodeJSX('datetime');\n const quote = renderTNodeJSX('quote');\n const actions = renderTNodeJSX('actions');\n const content = renderTNodeJSX('content');\n const avatar = renderTNodeJSX('avatar');\n const showAuthorDatetime = computed(() => author || datetime);\n\n const replyDom = reply ? <div class={`${COMPONENT_NAME.value}__reply`}>{reply}</div> : null;\n\n const quoteDom = quote ? <div class={`${COMPONENT_NAME.value}__quote`}>{quote}</div> : null;\n\n const avatarDom = avatar ? (\n <div class={`${COMPONENT_NAME.value}__avatar`}>\n {isString(avatar) ? <img src={avatar} alt=\"\" class={`${COMPONENT_NAME.value}__avatar-image`} /> : avatar}\n </div>\n ) : null;\n\n const authorDatetimeDom = showAuthorDatetime.value && (\n <div class={`${COMPONENT_NAME.value}__author`}>\n {author && <span class={`${COMPONENT_NAME.value}__name`}>{author}</span>}\n {datetime && <span class={`${COMPONENT_NAME.value}__time`}>{datetime}</span>}\n </div>\n );\n\n const renderActions = () => {\n if (!actions || !actions.length) return null;\n return (\n <div class={`${COMPONENT_NAME.value}__actions`}>\n {(isArray(actions) ? actions : [actions]).map((action, index) => (\n <Button key={`action-${index}`} size=\"small\" variant=\"text\">\n {action}\n </Button>\n ))}\n </div>\n );\n };\n\n const contentDom = (\n <div class={`${COMPONENT_NAME.value}__content`}>\n {authorDatetimeDom}\n <div class={`${COMPONENT_NAME.value}__detail`}>{content}</div>\n {quoteDom}\n {renderActions()}\n </div>\n );\n\n return (\n <div class={COMPONENT_NAME.value}>\n <div class={`${COMPONENT_NAME.value}__inner`}>\n {avatarDom}\n {contentDom}\n </div>\n {replyDom}\n </div>\n );\n };\n },\n});\n"],"names":["_isVNode","name","props","_createVNode","isString","isArray"],"mappings":"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"}