Files
react/components/modal/use-modal.ts
2020-03-19 01:15:58 +08:00

27 lines
620 B
TypeScript

import { Dispatch, MutableRefObject, SetStateAction } from 'react'
import useCurrentState from 'components/utils/use-current-state'
const useModal = (initialVisible: boolean = false): {
visible: boolean
setVisible: Dispatch<SetStateAction<boolean>>
currentRef: MutableRefObject<boolean>
bindings: {
open: boolean
onClose: () => void
}
} => {
const [visible, setVisible, currentRef] = useCurrentState<boolean>(initialVisible)
return {
visible,
setVisible,
currentRef,
bindings: {
open: visible,
onClose: () => setVisible(false),
},
}
}
export default useModal