Files
react/components/modal/use-modal.ts
2020-04-14 19:06:47 +08:00

27 lines
612 B
TypeScript

import { Dispatch, MutableRefObject, SetStateAction } from 'react'
import useCurrentState from '../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