UNPKG

tdesign-react

Version:
83 lines (79 loc) 2.94 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ import { _ as _slicedToArray } from '../_chunks/dep-10d5731f.js'; import { _ as _typeof } from '../_chunks/dep-8abcbcbc.js'; import { useMemo, useEffect } from 'react'; import '../_chunks/dep-1144c9da.js'; import { l as limitUnicodeMaxLength, d as getCharacterLength, b as getUnicodeLength } from '../_chunks/dep-624e7b27.js'; import { l as log } from '../_chunks/dep-2ba7b13f.js'; import '../_chunks/dep-74a10cfb.js'; import '../_chunks/dep-a3a3e527.js'; import '../_chunks/dep-ed34fbd4.js'; import '../_chunks/dep-d67deb2c.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