feat(Modal): open programmatically (#78)

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
Neil Richter
2024-05-28 17:14:13 +02:00
committed by GitHub
parent cf38e7ed78
commit 2bf99e1eb4
8 changed files with 146 additions and 1 deletions

View File

@@ -13,7 +13,7 @@ import { toRef } from 'vue'
import { ConfigProvider, TooltipProvider, useForwardProps } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useId } from '#imports'
import { UToaster } from '#components'
import { UToaster, UModalProvider } from '#components'
const props = withDefaults(defineProps<ProviderProps>(), {
useId: () => useId()
@@ -31,5 +31,7 @@ const toasterProps = toRef(() => props.toaster)
<slot />
</UToaster>
</TooltipProvider>
<UModalProvider />
</ConfigProvider>
</template>

View File

@@ -0,0 +1,12 @@
<script lang="ts" setup>
import { inject } from 'vue'
import { useModal, modalInjectionKey } from '../composables/useModal'
const modalState = inject(modalInjectionKey)
const { isOpen } = useModal()
</script>
<template>
<component :is="modalState.component" v-if="modalState" v-bind="modalState.props" v-model:open="isOpen" />
</template>