-
-
Notifications
You must be signed in to change notification settings - Fork 35
/
alert-dialog-trigger.ts
35 lines (30 loc) · 1.22 KB
/
alert-dialog-trigger.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { defineComponent, h, mergeProps, reactive, toRefs } from 'vue'
import { reactiveOmit, useForwardRef } from '@oku-ui/use-composable'
import { OkuDialogTrigger } from '@oku-ui/dialog'
import type { AlertDialogTriggerNaviteElement } from './props'
import { TRIGGER_NAME, alertDialogTriggerProps, scopeAlertDialogProps, useAlertDialogScope } from './props'
const alertDialogTrigger = defineComponent({
name: TRIGGER_NAME,
inheritAttrs: false,
props: {
...alertDialogTriggerProps.props,
...scopeAlertDialogProps,
},
setup(props, { attrs, slots }) {
const { scopeOkuAlertDialog, ...triggerProps } = toRefs(props)
const _reactive = reactive(triggerProps)
const reactiveTriggerProps = reactiveOmit(_reactive, (key, _value) => key === undefined)
const dialogScope = useAlertDialogScope(scopeOkuAlertDialog.value)
const forwardRef = useForwardRef()
return () => h(OkuDialogTrigger, {
...dialogScope,
...mergeProps(attrs, reactiveTriggerProps),
ref: forwardRef,
}, slots)
},
})
// TODO: https://github.com/vuejs/core/pull/7444 after delete
export const OkuAlertDialogTrigger = alertDialogTrigger as typeof alertDialogTrigger &
(new () => {
$props: AlertDialogTriggerNaviteElement
})