123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import classNames from 'classnames';
- import * as React from 'react';
- export default function Arrow(props) {
- var prefixCls = props.prefixCls,
- align = props.align,
- arrow = props.arrow,
- arrowPos = props.arrowPos;
- var _ref = arrow || {},
- className = _ref.className,
- content = _ref.content;
- var _arrowPos$x = arrowPos.x,
- x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,
- _arrowPos$y = arrowPos.y,
- y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;
- var arrowRef = React.useRef();
- // Skip if no align
- if (!align || !align.points) {
- return null;
- }
- var alignStyle = {
- position: 'absolute'
- };
- // Skip if no need to align
- if (align.autoArrow !== false) {
- var popupPoints = align.points[0];
- var targetPoints = align.points[1];
- var popupTB = popupPoints[0];
- var popupLR = popupPoints[1];
- var targetTB = targetPoints[0];
- var targetLR = targetPoints[1];
- // Top & Bottom
- if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {
- alignStyle.top = y;
- } else if (popupTB === 't') {
- alignStyle.top = 0;
- } else {
- alignStyle.bottom = 0;
- }
- // Left & Right
- if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {
- alignStyle.left = x;
- } else if (popupLR === 'l') {
- alignStyle.left = 0;
- } else {
- alignStyle.right = 0;
- }
- }
- return /*#__PURE__*/React.createElement("div", {
- ref: arrowRef,
- className: classNames("".concat(prefixCls, "-arrow"), className),
- style: alignStyle
- }, content);
- }
|