tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 6.92 kB
Source Map (JSON)
{"version":3,"file":"avatar.mjs","sources":["../../src/avatar/avatar.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from 'vue';\nimport TBadge from '../badge';\nimport TImage from '../image';\nimport config from '../config';\nimport AvatarProps from './props';\nimport { TdAvatarGroupProps, TdAvatarProps } from './type';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { isValidSize } from '../_common/js/avatar/utils';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-avatar`,\n props: AvatarProps,\n setup(props) {\n const renderTNodeJSX = useTNodeJSX();\n const renderTNodeContent = useContent();\n const avatarClass = usePrefixClass('avatar');\n\n const avatarGroupProps = inject<TdAvatarGroupProps>('avatarGroup', {});\n const hasAvatarGroupProps = Object.keys(avatarGroupProps).length > 0;\n\n const shapeValue = computed(() => props.shape || avatarGroupProps?.shape || 'circle');\n const sizeValue = computed(() => props.size || avatarGroupProps?.size);\n const isCustomSize = computed(() => !isValidSize(sizeValue.value));\n\n const avatarClasses = computed(() => [\n `${avatarClass.value}`,\n `${avatarClass.value}--${isCustomSize.value ? 'medium' : sizeValue.value}`,\n `${avatarClass.value}--${shapeValue.value}`,\n hasAvatarGroupProps\n ? `${avatarClass.value}--border ${avatarClass.value}--border-${isCustomSize.value ? 'medium' : sizeValue.value}`\n : '',\n ]);\n\n const customSize = computed(() => {\n return isCustomSize.value\n ? {\n height: sizeValue.value,\n width: sizeValue.value,\n 'font-size': `${(Number.parseInt(sizeValue.value, 10) / 8) * 3 + 2}px`,\n }\n : {};\n });\n\n const handleImgLoadError = (e: any) => {\n props.onError?.(e);\n };\n return () => {\n const icon = renderTNodeJSX('icon');\n const TNodeContent = renderTNodeContent('default', 'content');\n\n const readerAvatar = () => {\n if (props.image && !props.hideOnLoadFailed) {\n return (\n <TImage\n src={props.image}\n alt={props.alt}\n {...(props.imageProps as TdAvatarProps['imageProps'])}\n onError={handleImgLoadError}\n />\n );\n }\n if (icon) {\n return <div class={`${avatarClass.value}__icon`}>{icon}</div>;\n }\n return <>{TNodeContent}</>;\n };\n return (\n <div class={`${avatarClass.value}__wrapper`}>\n <div class={`${avatarClass.value}__badge`}>\n <TBadge {...(props.badgeProps as TdAvatarProps['badgeProps'])}>\n <div class={avatarClasses.value} style={customSize.value}>\n {readerAvatar()}\n </div>\n </TBadge>\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","AvatarProps","setup","renderTNodeJSX","useTNodeJSX","renderTNodeContent","useContent","avatarClass","usePrefixClass","avatarGroupProps","inject","hasAvatarGroupProps","Object","keys","length","shapeValue","computed","shape","sizeValue","size","isCustomSize","isValidSize","value","avatarClasses","concat","customSize","height","width","Number","parseInt","handleImgLoadError","e","_props$onError","onError","call","icon","TNodeContent","readerAvatar","image","hideOnLoadFailed","_createVNode","TImage","_mergeProps","alt","imageProps","_Fragment","TBadge","badgeProps","default","_default"],"mappings":"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"}