UNPKG

tdesign-react

Version:
80 lines (76 loc) 2.82 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ import { _ as _slicedToArray } from '../_chunks/dep-48805ab8.js'; import { _ as _typeof } from '../_chunks/dep-eca3a3de.js'; import { useMemo, useEffect } from 'react'; import { l as log } from '../_chunks/dep-b908e1fe.js'; import { a as getUnicodeLength, b as getCharacterLength, l as limitUnicodeMaxLength } from '../_chunks/dep-6af6bc60.js'; import '../_chunks/dep-026a4c6b.js'; import '../_chunks/dep-87d110df.js'; import 'lodash-es'; 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 limitUnicodeMaxLength(inputValue, maxlength); } if (maxcharacter) { var r = getCharacterLength(inputValue, maxcharacter); if (_typeof(r) === "object") { return r.characters; } } }; var limitNumber = useMemo(function () { var maxlength = params.maxlength, maxcharacter = params.maxcharacter, value = params.value; if (typeof value === "number") return String(value); if (maxlength && maxcharacter) { log.warn("Input", "Pick one of maxlength and maxcharacter please."); } if (maxlength) { var length = value !== null && value !== void 0 && value.length ? getUnicodeLength(value) : 0; return "".concat(length, "/").concat(maxlength); } if (maxcharacter) { return "".concat(getCharacterLength(value || ""), "/").concat(maxcharacter); } return ""; }, [params.maxcharacter, params.maxlength, params.value]); var innerStatus = useMemo(function () { if (limitNumber) { var _limitNumber$split = limitNumber.split("/"), _limitNumber$split2 = _slicedToArray(_limitNumber$split, 2), current = _limitNumber$split2[0], total = _limitNumber$split2[1]; return Number(current) > Number(total) ? "error" : ""; } return ""; }, [limitNumber]); var tStatus = 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 }); }; useEffect(function () { onValidateChange(); }, [innerStatus]); return { tStatus: tStatus, limitNumber: limitNumber, getValueByLimitNumber: getValueByLimitNumber }; } export { useLengthLimit as default }; //# sourceMappingURL=useLengthLimit.js.map