UNPKG

@pisell/layout

Version:

基于 Fusion 设计系统的自然布局体系

43 lines 1.7 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; var _excluded = ["className", "size", "direction", "children", "style"]; import { createElement, useContext, useMemo } from 'react'; import classNames from 'classnames'; import { isNumber, isString } from 'lodash-es'; import Context from "./common/context"; import { isPresetSize, wrapUnit } from "./utils"; /** * 间距 */ var Space = function Space(props) { var _classNames; var className = props.className, size = props.size, direction = props.direction, children = props.children, style = props.style, others = _objectWithoutPropertiesLoose(props, _excluded); var _useContext = useContext(Context), prefix = _useContext.prefix; var clsPrefix = prefix + "space"; var isVertical = direction === 'ver'; var spaceCls = classNames(clsPrefix, (_classNames = {}, _classNames[clsPrefix + "--" + size] = isPresetSize(size), _classNames[clsPrefix + "--" + direction] = true, _classNames)); var newStyle = useMemo(function () { var isCustomSize = isNumber(size) || isString(size) && size !== '' && !isPresetSize(size); return _extends({}, style, isCustomSize && direction === 'hoz' ? { height: wrapUnit(size) } : null, isCustomSize && direction === 'ver' ? { width: wrapUnit(size) } : null); }, [size, style, direction]); return /*#__PURE__*/createElement(isVertical ? 'span' : 'div', _extends({}, others, { className: spaceCls, style: newStyle }), children); }; Space.displayName = 'Space'; Space.defaultProps = { size: 'medium', direction: 'hoz' }; export default Space;