@pisell/layout
Version:
基于 Fusion 设计系统的自然布局体系
38 lines (37 loc) • 1.75 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _react = require("react");
var _classnames = _interopRequireDefault(require("classnames"));
var _lodashEs = require("lodash-es");
var _context = _interopRequireDefault(require("../common/context"));
// 通过判断容器 props 值,给容器设置class,由 class 控制容器 flex 样式
var useFlexClassNames = function useFlexClassNames(props) {
var _classNames;
var autoFit = props.autoFit,
width = props.width,
height = props.height,
style = props.style;
var _useContext = (0, _react.useContext)(_context["default"]),
prefix = _useContext.prefix;
var clsPrefix = prefix + "flex-item";
var validWidth = width || (style === null || style === void 0 ? void 0 : style.width);
var validHeight = (0, _lodashEs.isNumber)(height) || (0, _lodashEs.isString)(height) && height !== '' ? height : undefined;
var validMinHeight = style === null || style === void 0 ? void 0 : style.minHeight;
var isDefault = false;
var isAutoFit = false;
var isValidWidth = false;
var isValidHeight = false;
if (autoFit) {
isAutoFit = true;
} else if (validHeight || validMinHeight || validWidth) {
isValidHeight = validHeight || validMinHeight;
isValidWidth = validWidth;
} else {
isDefault = true;
}
return (0, _classnames["default"])((_classNames = {}, _classNames[clsPrefix + "-default"] = isDefault, _classNames[clsPrefix + "-auto-fit"] = isAutoFit, _classNames[clsPrefix + "-valid-width"] = isValidWidth, _classNames[clsPrefix + "-valid-height"] = isValidHeight, _classNames));
};
var _default = useFlexClassNames;
exports["default"] = _default;