@anoki/fse-ui
Version:
FSE UI components library
3 lines (2 loc) • 1.64 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./sections/RichText/RichText.css');const e=require("./index.cjs237.js"),s=require("react");;/* empty css */const x=require("./index.cjs148.js"),a=require("./index.cjs239.js"),i=require("./index.cjs123.js"),v=require("./index.cjs61.js"),y=({title:l,description:t,fontSize:d="2",mdFontSize:m="2",classNameTitle:h,additionalClass:j,children:g,maxLines:r=void 0})=>{const[n,f]=s.useState(typeof r=="number"),[u,R]=s.useState(!1),o=s.useRef(null),E=()=>{f(!n)};s.useLayoutEffect(()=>{const c=()=>{if(o.current){const{scrollHeight:S,clientHeight:b}=o.current;R(S>b)}};return c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)},[t,r]);const p=s.useMemo(()=>t?typeof t=="string"&&s.isValidElement(t)||!r?x.HTML(t.toString(),"div"):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx("div",{ref:o,className:a.clsx("rich-text-body",n&&"rich-text-body--clamped"),style:{"--max-lines":r},children:x.HTML(t.toString(),"div")}),u&&e.jsxRuntimeExports.jsxs("a",{"aria-label":"Mostra altro",className:"toggle-clamped-btn",onClick:E,children:["Mostra ",n?"altro":"meno"]})]}):null,[t,n,r,u]);return e.jsxRuntimeExports.jsxs(i.Section,{className:a.clsx("base-col ui-rich-text-section",j),children:[e.jsxRuntimeExports.jsxs(v.Col,{className:"ui-rich-text-content",children:[l&&e.jsxRuntimeExports.jsx(i.Section.Title,{fs:d,mdFs:m,className:h,children:l}),e.jsxRuntimeExports.jsx(i.Section.Description,{children:p})]}),g]})};exports.RichText=y;
//# sourceMappingURL=index.cjs143.js.map