UNPKG

tdesign-mobile-vue

Version:
1 lines 7.53 kB
{"version":3,"file":"toast.mjs","sources":["../../src/toast/toast.tsx"],"sourcesContent":["import { LoadingIcon, CheckCircleIcon, CloseCircleIcon } from 'tdesign-icons-vue-next';\nimport { computed, defineComponent, h, ref } from 'vue';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport TOverlay from '../overlay';\nimport ToastProps from './props';\nimport config from '../config';\nimport { useLockScroll } from '../hooks/useLockScroll';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-toast`,\n props: ToastProps,\n setup(props) {\n const toastTypeIcon = {\n loading: LoadingIcon,\n success: CheckCircleIcon,\n error: CloseCircleIcon,\n };\n\n const toastClass = usePrefixClass('toast');\n\n const renderTNodeJSX = useTNodeJSX();\n\n const renderContent = useContent();\n\n const toastRef = ref<HTMLElement>();\n\n const customOverlayProps = computed(() => {\n const toastOverlayProps = {\n preventScrollThrough: props.preventScrollThrough,\n visible: props.showOverlay,\n };\n return {\n ...props.overlayProps,\n ...toastOverlayProps,\n };\n });\n\n const classes = computed(() => [\n `${toastClass.value}`,\n `${toastClass.value}__content`,\n `${toastClass.value}__icon`,\n {\n [`${toastClass.value}--${props.direction}`]: props.direction,\n [`${toastClass.value}__content--${props.direction}`]: props.direction,\n [`${toastClass.value}--loading`]: props.theme === 'loading',\n },\n ]);\n\n const topOptions = {\n top: '25%',\n bottom: '75%',\n middle: '50%',\n };\n\n const computedStyle = computed(() => ({\n top: topOptions[props.placement],\n }));\n\n const iconClasses = computed(() => [\n {\n [`${toastClass.value}__icon--${props.direction}`]: props.direction,\n },\n ]);\n\n const iconContent = computed(() => {\n let iconNode = renderTNodeJSX('icon');\n if (iconNode === undefined && props.theme) {\n iconNode = h(toastTypeIcon[props.theme]);\n }\n return iconNode;\n });\n\n const renderIconContent = computed(() => {\n if (iconContent.value) {\n return <div class={iconClasses.value}>{iconContent.value}</div>;\n }\n return '';\n });\n\n const textClasses = computed(() => [\n {\n [`${toastClass.value}__text`]: !iconContent.value,\n [`${toastClass.value}__text--${props.direction}`]: props.direction,\n },\n ]);\n\n const messageContent = computed(() => renderContent('default', 'message'));\n\n const renderMessageContent = computed(() => {\n if (messageContent.value) {\n return <div class={textClasses.value}>{messageContent.value}</div>;\n }\n return '';\n });\n\n useLockScroll(toastRef, () => props.preventScrollThrough, toastClass.value);\n\n return () => {\n return (\n <div>\n <TOverlay {...customOverlayProps.value} />\n\n <div class={classes.value} style={computedStyle.value}>\n {renderIconContent.value}\n {renderMessageContent.value}\n </div>\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","ToastProps","setup","toastTypeIcon","loading","LoadingIcon","success","CheckCircleIcon","error","CloseCircleIcon","toastClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","toastRef","ref","customOverlayProps","computed","toastOverlayProps","preventScrollThrough","visible","showOverlay","_objectSpread","overlayProps","classes","concat","value","_defineProperty","direction","theme","topOptions","top","bottom","middle","computedStyle","placement","iconClasses","iconContent","iconNode","h","renderIconContent","_createVNode","textClasses","messageContent","renderMessageContent","useLockScroll","TOverlay"],"mappings":"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"}