@useloops/design-system
Version:
The official React based Loops design system
2 lines (1 loc) • 1.14 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),t=require("@mui/material"),r=require("@tiptap/extension-placeholder"),i=require("@tiptap/starter-kit"),n=require("mui-tiptap"),o=require("react"),l=require("./StyledRichTextEditor.js");module.exports=({onChange:u,value:s,internalChange:a,minWidth:d=100,minHeight:c=100,maxHeight:h,placeholder:x,options:m={}})=>{const p=o.useRef(null);t.useTheme();const{bold:g=!0,italic:j=!0,underline:q=!0,bulletList:B=!1,orderedList:L=!1}=m;return e.jsx(l,{sx:{"& .ProseMirror":{overflowY:"auto",minHeight:c,minWidth:d,maxHeight:h}},ref:p,onUpdate:({editor:e})=>{u&&u(e.getHTML()),a&&a()},enableInputRules:!1,extensions:[i.StarterKit.configure({strike:!1,code:!1,heading:!1,blockquote:!1,horizontalRule:!1,codeBlock:!1,bold:!!g&&{},italic:!!j&&{},listItem:!(!B&&!L)&&{},bulletList:!!B&&{},orderedList:!!L&&{}}),r.Placeholder.configure({placeholder:x})],content:s,renderControls:()=>e.jsxs(t.Stack,{direction:"row",children:[g&&e.jsx(n.MenuButtonBold,{}),j&&e.jsx(n.MenuButtonItalic,{}),q&&e.jsx(n.MenuButtonUnderline,{}),B&&e.jsx(n.MenuButtonBulletedList,{}),L&&e.jsx(n.MenuButtonOrderedList,{})]})})};