@pisell/layout
Version:
基于 Fusion 设计系统的自然布局体系
49 lines (48 loc) • 2.14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = require("react");
var _classnames = _interopRequireDefault(require("classnames"));
var _lodashEs = require("lodash-es");
var _context = _interopRequireDefault(require("./common/context"));
var _utils = require("./utils");
var _excluded = ["className", "size", "direction", "children", "style"];
/**
* 间距
*/
var Space = function Space(props) {
var _classNames;
var className = props.className,
size = props.size,
direction = props.direction,
children = props.children,
style = props.style,
others = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
var _useContext = (0, _react.useContext)(_context["default"]),
prefix = _useContext.prefix;
var clsPrefix = prefix + "space";
var isVertical = direction === 'ver';
var spaceCls = (0, _classnames["default"])(clsPrefix, (_classNames = {}, _classNames[clsPrefix + "--" + size] = (0, _utils.isPresetSize)(size), _classNames[clsPrefix + "--" + direction] = true, _classNames));
var newStyle = (0, _react.useMemo)(function () {
var isCustomSize = (0, _lodashEs.isNumber)(size) || (0, _lodashEs.isString)(size) && size !== '' && !(0, _utils.isPresetSize)(size);
return (0, _extends2["default"])({}, style, isCustomSize && direction === 'hoz' ? {
height: (0, _utils.wrapUnit)(size)
} : null, isCustomSize && direction === 'ver' ? {
width: (0, _utils.wrapUnit)(size)
} : null);
}, [size, style, direction]);
return /*#__PURE__*/(0, _react.createElement)(isVertical ? 'span' : 'div', (0, _extends2["default"])({}, others, {
className: spaceCls,
style: newStyle
}), children);
};
Space.displayName = 'Space';
Space.defaultProps = {
size: 'medium',
direction: 'hoz'
};
var _default = Space;
exports["default"] = _default;