UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

37 lines (36 loc) 1.03 kB
"use strict"; exports.__esModule = true; exports.useClassName = useClassName; var _react = require("react"); /** * 获取类名字符串。 * * @public * @param getClassValues 获取类名列表函数 * @param deps 当依赖变更时重新获取 * @returns 返回类名字符串 * @example * ```typescript * const [mini, setMini] = useState(true) * const buttonClassName = useClassName(() => [ * 'ui-btn', * mini && 'ui-btn_mini', * ], [mini]) * console.log(buttonClassName) // => 'ui-btn ui-btn_mini' * setMini(false) * console.log(buttonClassName) // => 'ui-btn' * ``` */ function useClassName(getClassValues, deps) { var className = (0, _react.useMemo)(function () { var classValues = getClassValues(); if (classValues) { var validClassValues = classValues.filter(function (value) { return typeof value === 'string' && value !== ''; }); return validClassValues.length ? validClassValues.join(' ') : undefined; } return undefined; }, deps); return className; }