UNPKG

tdesign-react

Version:
91 lines (85 loc) 3.17 kB
/** * tdesign v1.16.6 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../_chunks/dep-3281986a.js'); var _typeof = require('../_chunks/dep-90a93885.js'); var React = require('react'); var log = require('../_chunks/dep-ed99b2c6.js'); var helper = require('../_chunks/dep-d7a3225b.js'); require('../_chunks/dep-54373955.js'); require('../_chunks/dep-ef5bfcf1.js'); require('../_chunks/dep-33be2db8.js'); require('../_chunks/dep-989c8b4a.js'); require('../_chunks/dep-79129c54.js'); require('../_chunks/dep-4c4d8eee.js'); require('../_chunks/dep-615c149d.js'); require('../_chunks/dep-0173c82c.js'); require('../_chunks/dep-202d6c73.js'); require('../_chunks/dep-a8d5081a.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