carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 721 B
JavaScript
import{jsx as e}from"react/jsx-runtime";import{useState as t,useEffect as r,useRef as n,useMemo as i}from"react";import o from"../../__internal__/character-count/character-count.component.js";import u from"../../__internal__/utils/helpers/guid/index.js";import c from"../__internal__/useDebounce/useDebounce.js";const a=(a,l,m)=>{const s="number"==typeof l&&!Number.isNaN(l),[_,d]=t(a),p=c((e=>{d(e)}),2e3);r((()=>{l&&p(a)}),[a,l,p]);const f=n(u()),h=i((()=>!(!a||!s)&&a.length>l),[a,l,s]),b=i((()=>!(!_||!s)&&_.length>l),[_,l,s]);return[s?e(o,{ariaLive:m,isOverLimit:h,isDebouncedOverLimit:b,value:a.length,debouncedValue:_.length,limit:l,visuallyHiddenHintId:f.current}):null,s?f.current:void 0]};export{a as default};