@@ -19,28 +19,18 @@ export function useInternalVfm(): InternalVfm {
1919}
2020
2121/**
22- * Create a dynamic modal.
22+ * Define a dynamic modal.
2323 */
24- export function useModal <
24+ export function defineModal <
2525 ModalProps extends ComponentProps ,
2626 DefaultSlotProps extends ComponentProps = { } ,
2727 > ( _options ?: UseModalOptions < ModalProps , DefaultSlotProps > ) : UseModalReturnType < ModalProps , DefaultSlotProps > {
28- const { dynamicModals } = useVfm ( )
29-
3028 const options = reactive ( {
3129 id : Symbol ( 'useModal' ) ,
3230 modelValue : false ,
3331 ..._options ,
3432 } ) as UseModalOptionsPrivate < ModalProps , DefaultSlotProps >
3533
36- dynamicModals . push ( options )
37-
38- onUnmounted ( ( ) => {
39- const index = dynamicModals . indexOf ( options )
40- if ( index !== - 1 )
41- dynamicModals . splice ( index , 1 )
42- } )
43-
4434 function open ( ) : Promise < string > {
4535 if ( options . modelValue )
4636 return Promise . resolve ( '[Vue Final Modal] modal is already opened' )
@@ -75,6 +65,28 @@ export function useModal<
7565 }
7666}
7767
68+ /**
69+ * Create a dynamic modal.
70+ */
71+ export function useModal <
72+ ModalProps extends ComponentProps ,
73+ DefaultSlotProps extends ComponentProps = { } ,
74+ > ( _options ?: UseModalOptions < ModalProps , DefaultSlotProps > ) : UseModalReturnType < ModalProps , DefaultSlotProps > {
75+ const { dynamicModals } = useVfm ( )
76+
77+ const modal = defineModal ( _options )
78+
79+ dynamicModals . push ( modal . options )
80+
81+ onUnmounted ( ( ) => {
82+ const index = dynamicModals . indexOf ( modal . options )
83+ if ( index !== - 1 )
84+ dynamicModals . splice ( index , 1 )
85+ } )
86+
87+ return modal
88+ }
89+
7890export function pickModalProps ( props : any , modalProps : any ) {
7991 return Object . keys ( modalProps ) . reduce ( ( acc , propName ) => {
8092 acc [ propName ] = props [ propName ]
0 commit comments