Browse Source

types(BasicModal): improve ts types

main
刘凯 1 year ago
parent
commit
d0b710a1ae
  1. 6
      src/components/Modal/src/hooks/useModal.ts
  2. 6
      src/components/Modal/src/typing.ts

6
src/components/Modal/src/hooks/useModal.ts

@ -13,7 +13,7 @@ const openData = reactive<{ [key: number]: boolean }>({})
/** /**
* @description: Applicable to independent modal and call outside * @description: Applicable to independent modal and call outside
*/ */
export function useModal(): UseModalReturnType { export function useModal<D = any>(): UseModalReturnType<D> {
const modal = ref<Nullable<ModalMethods>>(null) const modal = ref<Nullable<ModalMethods>>(null)
const loaded = ref<Nullable<boolean>>(false) const loaded = ref<Nullable<boolean>>(false)
const uid = ref<number>(0) const uid = ref<number>(0)
@ -47,7 +47,7 @@ export function useModal(): UseModalReturnType {
return instance return instance
} }
const methods: ReturnMethods = { const methods: ReturnMethods<D> = {
setModalProps: (props: Partial<ModalProps>): void => { setModalProps: (props: Partial<ModalProps>): void => {
getInstance()?.setModalProps(props) getInstance()?.setModalProps(props)
}, },
@ -60,7 +60,7 @@ export function useModal(): UseModalReturnType {
getInstance()?.redoModalHeight?.() getInstance()?.redoModalHeight?.()
}, },
openModal: <T = any>(open = true, data?: T, openOnSet = true): void => { openModal: (open = true, data?: D, openOnSet = true): void => {
getInstance()?.setModalProps({ getInstance()?.setModalProps({
open, open,
}) })

6
src/components/Modal/src/typing.ts

@ -12,13 +12,13 @@ export interface ModalMethods {
export type RegisterFn = (modalMethods: ModalMethods, uuid: number) => void export type RegisterFn = (modalMethods: ModalMethods, uuid: number) => void
export interface ReturnMethods extends ModalMethods { export interface ReturnMethods<D> extends ModalMethods {
openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void openModal: (props?: boolean, data?: D, openOnSet?: boolean) => void
closeModal: () => void closeModal: () => void
getOpen?: ComputedRef<boolean> getOpen?: ComputedRef<boolean>
} }
export type UseModalReturnType = [RegisterFn, ReturnMethods] export type UseModalReturnType<D> = [RegisterFn, ReturnMethods<D>]
export interface ReturnInnerMethods extends ModalMethods { export interface ReturnInnerMethods extends ModalMethods {
closeModal: () => void closeModal: () => void