UNPKG

@pisell/layout

Version:

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

32 lines 1.45 kB
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;