@zohodesk/hooks
Version:
Unified Component Library - Hooks
27 lines • 854 B
JavaScript
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
};
}