reka-ui
Version:
Vue port for Radix UI Primitives.
1 lines • 1.88 kB
Source Map (JSON)
{"version":3,"file":"AvatarFallback.cjs","sources":["../../src/Avatar/AvatarFallback.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { isClient } from '@vueuse/shared'\nimport { useForwardExpose } from '@/shared'\n\nexport interface AvatarFallbackProps extends PrimitiveProps {\n /** Useful for delaying rendering so it only appears for those with slower connections. */\n delayMs?: number\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watchEffect } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { injectAvatarRootContext } from './AvatarRoot.vue'\n\nconst props = withDefaults(defineProps<AvatarFallbackProps>(), {\n as: 'span',\n})\n\nconst rootContext = injectAvatarRootContext()\nuseForwardExpose()\n\nconst canRender = ref(props.delayMs === undefined)\n\nwatchEffect((onCleanup) => {\n if (props.delayMs && isClient) {\n const timerId = window.setTimeout(() => {\n canRender.value = true\n }, props.delayMs)\n\n onCleanup(() => {\n window.clearTimeout(timerId)\n })\n }\n})\n</script>\n\n<template>\n <Primitive\n v-if=\"canRender && rootContext.imageLoadingStatus.value !== 'loaded'\"\n :as-child=\"asChild\"\n :as=\"as\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectAvatarRootContext","useForwardExpose","ref","watchEffect","isClient"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,yCAAwB,EAAA;AAC5C,IAAiBC,wCAAA,EAAA;AAEjB,IAAA,MAAM,SAAY,GAAAC,OAAA,CAAI,KAAM,CAAA,OAAA,KAAY,MAAS,CAAA;AAEjD,IAAAC,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,MAAI,IAAA,KAAA,CAAM,WAAWC,eAAU,EAAA;AAC7B,QAAM,MAAA,OAAA,GAAU,MAAO,CAAA,UAAA,CAAW,MAAM;AACtC,UAAA,SAAA,CAAU,KAAQ,GAAA,IAAA;AAAA,SACpB,EAAG,MAAM,OAAO,CAAA;AAEhB,QAAA,SAAA,CAAU,MAAM;AACd,UAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,SAC5B,CAAA;AAAA;AACH,KACD,CAAA;;;;;;;;;;;;;;;;;;"}