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