use-line-clamp
Version:
React.js hook to detect if text will clamp in X number of lines
2 lines • 1.51 kB
JavaScript
;var b=Object.create;var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var k=(e,t)=>{for(var n in t)s(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of y(t))!m.call(e,i)&&i!==n&&s(e,i,{get:()=>t[i],enumerable:!(r=p(t,i))||r.enumerable});return e};var v=(e,t,n)=>(n=e!=null?b(d(e)):{},u(t||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e)),C=e=>u(s({},"__esModule",{value:!0}),e);var L={};k(L,{default:()=>w});module.exports=C(L);var a=v(require("lodash.debounce")),o=require("react");function w(e,{lines:t}){let[n,r]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{let i=()=>{if(!e.current)return;let l={webkitLineClamp:e.current.style.webkitLineClamp,display:e.current.style.display,webkitBoxOrient:e.current.style.webkitBoxOrient,overflow:e.current.style.overflow};e.current.style.webkitLineClamp=t.toString(),e.current.style.display="-webkit-box",e.current.style.webkitBoxOrient="vertical",e.current.style.overflow="hidden",r(e.current.clientHeight!==e.current.scrollHeight),e.current.style.webkitLineClamp=l.webkitLineClamp,e.current.style.display=l.display,e.current.style.webkitBoxOrient=l.webkitBoxOrient,e.current.style.overflow=l.overflow},c=(0,a.default)(i,50);return i(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)},[e]),n}0&&(module.exports={});
//# sourceMappingURL=index.js.map