UNPKG

tdesign-react

Version:
86 lines (80 loc) 2.98 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../_chunks/dep-e17e2d31.js'); var _typeof = require('../_chunks/dep-6d4d8660.js'); var React = require('react'); var log = require('../_chunks/dep-4bc3c0ab.js'); var helper = require('../_chunks/dep-b8d4cf07.js'); require('../_chunks/dep-b7d577ac.js'); require('../_chunks/dep-64a1054a.js'); require('../_chunks/dep-422caf30.js'); require('../_chunks/dep-f0379c5f.js'); require('../_chunks/dep-ddacd27a.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