UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

48 lines (40 loc) 1.53 kB
import { Cross } from "@vnmfify/icons"; import classNames from "classnames"; import * as React from "react"; import { useContext } from "react"; import { prefixClassname } from "../styles"; import PopupContext from "./popup.context"; function usePopupClosePlacement(placement) { var { placement: ctxPlacement } = useContext(PopupContext); if (placement) { return placement; } if (ctxPlacement === "right") { return "top-left"; } return "top-right"; } export default function PopupClose(props) { var { children = /*#__PURE__*/React.createElement(Cross, null) } = props; var { onClose } = useContext(PopupContext); var placement = usePopupClosePlacement(props.placement); if ( /*#__PURE__*/React.isValidElement(children)) { var iconElement = children; return /*#__PURE__*/React.cloneElement(iconElement, { className: classNames(iconElement.props.classNames, prefixClassname("popup__close-icon"), { [prefixClassname("popup__close-icon--top-left")]: placement === "top-left", [prefixClassname("popup__close-icon--top-right")]: placement === "top-right", [prefixClassname("popup__close-icon--bottom-left")]: placement === "bottom-left" || placement === "bottom-right" }), onClick: () => onClose === null || onClose === void 0 ? void 0 : onClose(false) }); } return /*#__PURE__*/React.createElement(React.Fragment, null, children); } //# sourceMappingURL=popup-close.js.map