1
0
mirror of https://github.com/robonen/tools.git synced 2026-03-20 19:04:46 +00:00
Files
tools/vue/primitives/src/presence/Presence.vue

29 lines
600 B
Vue

<script lang="ts">
export interface PresenceProps {
present: boolean;
forceMount?: boolean;
}
</script>
<script setup lang="ts">
import { usePresence } from './usePresence';
const {
present,
forceMount = false,
} = defineProps<PresenceProps>();
defineSlots<{
default?: (props: { present: boolean }) => any;
}>();
const { isPresent, setRef } = usePresence(() => present);
defineExpose({ present: isPresent });
</script>
<template>
<!-- @vue-expect-error ref is forwarded to slot -->
<slot v-if="forceMount || present || isPresent" :ref="setRef" :present="isPresent" />
</template>