@@ -5,6 +5,11 @@ export type ComponentProps = ComponentPublicInstance['$props']
5
5
export type ModalId = number | string | symbol
6
6
export type StyleValue = string | CSSProperties | ( string | CSSProperties ) [ ]
7
7
8
+ export type ModalSlot < T extends Record < string , any > = { } > = string | {
9
+ component : Component
10
+ attrs ?: T
11
+ }
12
+
8
13
export type UseModalOptionsPrivate <
9
14
ModalProps extends ComponentProps = { } ,
10
15
DefaultSlotProps extends ComponentProps = { } ,
@@ -13,11 +18,8 @@ export type UseModalOptionsPrivate<
13
18
component : Component
14
19
attrs ?: ModalProps
15
20
slots ?: {
16
- default : string | {
17
- component : Component
18
- attrs ?: DefaultSlotProps
19
- }
20
- [ key : string ] : any
21
+ default : ModalSlot < DefaultSlotProps >
22
+ [ key : string ] : ModalSlot
21
23
}
22
24
23
25
id ?: symbol
@@ -26,22 +28,32 @@ export type UseModalOptionsPrivate<
26
28
resolveClosed ?: ( ) => void
27
29
}
28
30
31
+ export type ModalOptions <
32
+ ModalProps extends ComponentProps ,
33
+ DefaultSlotProps extends ComponentProps = { } ,
34
+ > = Pick <
35
+ UseModalOptionsPrivate < ModalProps , DefaultSlotProps > ,
36
+ | 'context'
37
+ | 'component'
38
+ | 'attrs'
39
+ | 'slots'
40
+ >
41
+
29
42
export type UseModalOptions <
30
43
ModalProps extends ComponentProps ,
31
44
DefaultSlotProps extends ComponentProps = { } ,
32
- > = Pick <
33
- UseModalOptionsPrivate < ModalProps , DefaultSlotProps > ,
34
- | 'context'
35
- | 'component'
36
- | 'attrs'
37
- | 'slots'
38
- >
45
+ > = Omit < ModalOptions < ModalProps , DefaultSlotProps > , 'slots' > & {
46
+ slots ?: {
47
+ default : ModalSlot < DefaultSlotProps > | Component
48
+ [ key : string ] : ModalSlot | Component
49
+ }
50
+ }
39
51
40
52
export type UseModalReturnType < ModalProps extends ComponentProps , DefaultSlotProps extends ComponentProps > = {
41
- options : UseModalOptions < ModalProps , DefaultSlotProps >
53
+ options : ModalOptions < ModalProps , DefaultSlotProps >
42
54
open : ( ) => Promise < string >
43
55
close : ( ) => Promise < string >
44
- patchOptions : ( options : UseModalOptions < ModalProps , DefaultSlotProps > ) => void
56
+ patchOptions : ( options : ModalOptions < ModalProps , DefaultSlotProps > ) => void
45
57
destroy : ( ) => void
46
58
}
47
59
0 commit comments