UNPKG

tdesign-mobile-vue

Version:
1 lines 5.16 kB
{"version":3,"file":"side-bar-item.mjs","sources":["../../src/side-bar/side-bar-item.tsx"],"sourcesContent":["import { defineComponent, getCurrentInstance, ComponentPublicInstance, computed, inject, onUnmounted } from 'vue';\nimport props from './side-bar-item-props';\nimport { TdSideBarItemProps } from './type';\nimport TBadge from '../badge';\nimport { useTNodeJSX } from '../hooks/tnode';\n\nimport config from '../config';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-side-bar-item`,\n props,\n setup(props) {\n const sideBarItemClass = usePrefixClass('side-bar-item');\n const renderTNodeJSX = useTNodeJSX();\n const internalInstance = getCurrentInstance();\n const proxy = internalInstance.proxy as ComponentPublicInstance<TdSideBarItemProps>;\n const sideBarProvide: any = inject('sideBarProvide', undefined);\n sideBarProvide.relation(proxy);\n\n const isActive = computed(() => proxy.value === sideBarProvide.currentValue.value);\n\n const rootClassName = computed(() => [\n sideBarItemClass.value,\n { [`${sideBarItemClass.value}--active`]: isActive.value },\n { [`${sideBarItemClass.value}--disabled`]: props.disabled },\n ]);\n\n const onClick = (e: MouseEvent) => {\n if (props.disabled) return;\n sideBarProvide.onClickItem(proxy.value, props.label);\n };\n\n onUnmounted(() => {\n sideBarProvide.removeRelation(proxy);\n });\n\n return () => {\n const renderIconNode = () => {\n const iconNode = renderTNodeJSX('icon');\n if (!iconNode) {\n return null;\n }\n return <div class={`${sideBarItemClass.value}__icon`}>{iconNode}</div>;\n };\n return (\n <div class={rootClassName.value} onClick={onClick}>\n {isActive.value && (\n <div>\n <div class={`${sideBarItemClass.value}__line`}></div>\n <div class={`${sideBarItemClass.value}__prefix`}></div>\n <div class={`${sideBarItemClass.value}__suffix`}></div>\n </div>\n )}\n {renderIconNode()}\n {props.badgeProps ? (\n <TBadge {...(props.badgeProps as TdSideBarItemProps['badgeProps'])} content={props.label} />\n ) : (\n <div>{props.label}</div>\n )}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","sideBarItemClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","internalInstance","getCurrentInstance","proxy","sideBarProvide","inject","relation","isActive","computed","value","currentValue","rootClassName","_defineProperty","concat","disabled","onClick","e","onClickItem","label","onUnmounted","removeRelation","renderIconNode","iconNode","_createVNode","badgeProps","TBadge","_mergeProps"],"mappings":"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"}