@pisell/layout
Version:
基于 Fusion 设计系统的自然布局体系
32 lines • 1.45 kB
JavaScript
import { useContext } from 'react';
import classNames from 'classnames';
import { isNumber, isString } from 'lodash-es';
import Context from "../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 = useContext(Context),
prefix = _useContext.prefix;
var clsPrefix = prefix + "flex-item";
var validWidth = width || (style === null || style === void 0 ? void 0 : style.width);
var validHeight = isNumber(height) || 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 classNames((_classNames = {}, _classNames[clsPrefix + "-default"] = isDefault, _classNames[clsPrefix + "-auto-fit"] = isAutoFit, _classNames[clsPrefix + "-valid-width"] = isValidWidth, _classNames[clsPrefix + "-valid-height"] = isValidHeight, _classNames));
};
export default useFlexClassNames;