UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

99 lines (98 loc) 4.14 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _warning = require("../_util/warning"); var _context = require("../config-provider/context"); var _style = _interopRequireDefault(require("./style")); var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; const Divider = props => { const { getPrefixCls, direction, className: dividerClassName, style: dividerStyle } = (0, _context.useComponentConfig)('divider'); const { prefixCls: customizePrefixCls, type = 'horizontal', orientation = 'center', orientationMargin, className, rootClassName, children, dashed, variant = 'solid', plain, style } = props, restProps = __rest(props, ["prefixCls", "type", "orientation", "orientationMargin", "className", "rootClassName", "children", "dashed", "variant", "plain", "style"]); const prefixCls = getPrefixCls('divider', customizePrefixCls); const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls); const hasChildren = !!children; const mergedOrientation = React.useMemo(() => { if (orientation === 'left') { return direction === 'rtl' ? 'end' : 'start'; } if (orientation === 'right') { return direction === 'rtl' ? 'start' : 'end'; } return orientation; }, [direction, orientation]); const hasMarginStart = mergedOrientation === 'start' && orientationMargin != null; const hasMarginEnd = mergedOrientation === 'end' && orientationMargin != null; const classString = (0, _classnames.default)(prefixCls, dividerClassName, hashId, cssVarCls, `${prefixCls}-${type}`, { [`${prefixCls}-with-text`]: hasChildren, [`${prefixCls}-with-text-${mergedOrientation}`]: hasChildren, [`${prefixCls}-dashed`]: !!dashed, [`${prefixCls}-${variant}`]: variant !== 'solid', [`${prefixCls}-plain`]: !!plain, [`${prefixCls}-rtl`]: direction === 'rtl', [`${prefixCls}-no-default-orientation-margin-start`]: hasMarginStart, [`${prefixCls}-no-default-orientation-margin-end`]: hasMarginEnd }, className, rootClassName); const memoizedOrientationMargin = React.useMemo(() => { if (typeof orientationMargin === 'number') { return orientationMargin; } if (/^\d+$/.test(orientationMargin)) { return Number(orientationMargin); } return orientationMargin; }, [orientationMargin]); const innerStyle = { marginInlineStart: hasMarginStart ? memoizedOrientationMargin : undefined, marginInlineEnd: hasMarginEnd ? memoizedOrientationMargin : undefined }; // Warning children not work in vertical mode if (process.env.NODE_ENV !== 'production') { const warning = (0, _warning.devUseWarning)('Divider'); process.env.NODE_ENV !== "production" ? warning(!children || type !== 'vertical', 'usage', '`children` not working in `vertical` mode.') : void 0; } return wrapCSSVar(/*#__PURE__*/React.createElement("div", Object.assign({ className: classString, style: Object.assign(Object.assign({}, dividerStyle), style) }, restProps, { role: "separator" }), children && type !== 'vertical' && (/*#__PURE__*/React.createElement("span", { className: `${prefixCls}-inner-text`, style: innerStyle }, children)))); }; if (process.env.NODE_ENV !== 'production') { Divider.displayName = 'Divider'; } var _default = exports.default = Divider;