UNPKG

@zohodesk/hooks

Version:

Unified Component Library - Hooks

27 lines 854 B
import { useReducer } from 'react'; import useCommonReducer from "../utils/useCommonReducer"; import reducer from "./reducer"; import bindActions from "../utils/bindActions"; import { setPopupOpen, setPopupClose, togglePopup } from "./actions"; export default function usePopup() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; let customReducer = arguments.length > 1 ? arguments[1] : undefined; const { isPopupOpen = false } = props; const { state, dispatch } = useCommonReducer(reducer, customReducer, isPopupOpen); const actions = bindActions({ setPopupOpen, togglePopup, setPopupClose }, dispatch); return { isPopupOpen: state, handleTogglePopup: actions.togglePopup, handleClosePopup: actions.setPopupClose, handleOpenPopup: actions.setPopupOpen }; }