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