tdesign-react
Version:
TDesign Component for React
89 lines (83 loc) • 3.1 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var slicedToArray = require('../_chunks/dep-5cb0d66d.js');
var _typeof = require('../_chunks/dep-b325182b.js');
var React = require('react');
var log = require('../_chunks/dep-05f87b98.js');
var helper = require('../_chunks/dep-779273e7.js');
require('../_chunks/dep-737b8bd8.js');
require('../_chunks/dep-a7fe58de.js');
require('../_chunks/dep-40583e7c.js');
require('../_chunks/dep-bb3e9667.js');
require('../_chunks/dep-4ce0670e.js');
require('../_chunks/dep-3448f35f.js');
require('../_chunks/dep-b304bc94.js');
require('../_chunks/dep-bdafd287.js');
function useLengthLimit(params) {
var getValueByLimitNumber = function getValueByLimitNumber(inputValue) {
var allowInputOverMax = params.allowInputOverMax,
maxlength = params.maxlength,
maxcharacter = params.maxcharacter;
if (!(maxlength || maxcharacter) || allowInputOverMax || !inputValue) return inputValue;
if (maxlength) {
return helper.limitUnicodeMaxLength(inputValue, maxlength);
}
if (maxcharacter) {
var r = helper.getCharacterLength(inputValue, maxcharacter);
if (_typeof._typeof(r) === "object") {
return r.characters;
}
}
};
var limitNumber = React.useMemo(function () {
var maxlength = params.maxlength,
maxcharacter = params.maxcharacter,
value = params.value;
if (typeof value === "number") return String(value);
if (maxlength && maxcharacter) {
log.log.warn("Input", "Pick one of maxlength and maxcharacter please.");
}
if (maxlength) {
var length = value !== null && value !== void 0 && value.length ? helper.getUnicodeLength(value) : 0;
return "".concat(length, "/").concat(maxlength);
}
if (maxcharacter) {
return "".concat(helper.getCharacterLength(value || ""), "/").concat(maxcharacter);
}
return "";
}, [params.maxcharacter, params.maxlength, params.value]);
var innerStatus = React.useMemo(function () {
if (limitNumber) {
var _limitNumber$split = limitNumber.split("/"),
_limitNumber$split2 = slicedToArray._slicedToArray(_limitNumber$split, 2),
current = _limitNumber$split2[0],
total = _limitNumber$split2[1];
return Number(current) > Number(total) ? "error" : "";
}
return "";
}, [limitNumber]);
var tStatus = React.useMemo(function () {
return params.status || innerStatus;
}, [params.status, innerStatus]);
var onValidateChange = function onValidateChange() {
var _params$onValidate;
(_params$onValidate = params.onValidate) === null || _params$onValidate === void 0 || _params$onValidate.call(params, {
error: innerStatus ? "exceed-maximum" : void 0
});
};
React.useEffect(function () {
onValidateChange();
}, [innerStatus]);
return {
tStatus: tStatus,
limitNumber: limitNumber,
getValueByLimitNumber: getValueByLimitNumber
};
}
exports["default"] = useLengthLimit;
//# sourceMappingURL=useLengthLimit.js.map