UNPKG

tdesign-react

Version:
89 lines (83 loc) 3.1 kB
/** * tdesign v1.16.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; 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