@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
2 lines (1 loc) • 4.75 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),i=require("@lexical/react/LexicalComposer"),n=require("@lexical/react/LexicalRichTextPlugin"),a=require("@lexical/react/LexicalContentEditable"),o=require("@lexical/react/LexicalOnChangePlugin"),r=require("@lexical/react/LexicalClearEditorPlugin"),l=require("@lexical/react/LexicalErrorBoundary"),s=require("@lexical/react/LexicalHistoryPlugin"),u=require("@lexical/react/LexicalAutoFocusPlugin"),c=require("@mui/material/Box"),d=require("@mui/material/styles"),x=require("lexical"),g=require("@mui/icons-material/Send"),m=require("@mui/material/Stack"),h=require("./plugins/ToolbarPlugin.js"),p=require("./plugins/MentionPlugin.js"),f=require("./plugins/KeyboardPlugin.js"),b=require("./plugins/AutoLinkPlugin.js"),j=require("./plugins/LinkPlugin.js"),C=require("./plugins/InsertLinkPlugin.js"),q=require("./plugins/TagsPlugin.js"),P=require("./plugins/ReadonlyContentEditable.js"),y=require("./CommentRichTextConfig.js"),E=require("../../locales/index.js"),S=require("../locale.json.js"),A=require("./utils/url.js"),T=require("./plugins/AttachmentsPlugin.js"),L=require("./command/index.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var M=v(l),O=v(c),R=v(g),N=v(m);const D="NexusCommentRichTextInput";exports.CommentRichTextInput=l=>{const{initialComment:c,initialAttachments:g,initialTags:m,initialMetadata:v,state:I="add",placeholder:k,onSave:_,onCancel:w,onCommentChange:$,richTextConfig:B,autofocus:J,disabled:G,sx:H,...F}=l,[K,V]=t.useState(),[z,Q]=t.useState(g||[]),[U,W]=t.useState(m||[]),[X,Y]=t.useState(v),[Z,ee]=t.useState(!c),[te,ie]=t.useState(!1),ne=E.useTranslate(S.default),ae=t.useRef(),oe=t.useRef(),re=d.useTheme(),le=B?.toolbox?.defaultExpanded,se={...y.sharedEditorConfig,namespace:"MyEditor",editorState:c,editable:!0};t.useEffect((()=>{if($){let e=c||"";if(K){const t=K.toJSON();e=JSON.stringify(t)}$?.(e,z,U,X)}}),[K,c,z,U,X,$]),t.useEffect((()=>{ee(!!ae.current)}),[K]);const ue=e=>{if(c||K||z.length>0){let t=c||"",i=!0;if(K){const e=A.convertNodes(K?.toJSON());t=JSON.stringify(e)}B?.onValidBeforeSubmit&&(i=B.onValidBeforeSubmit(t,z,U,X)),i&&(_?.(t,z,U,X),Q([]),W([]),Y(void 0),V(void 0),ie(!1),e.dispatchCommand(x.CLEAR_EDITOR_COMMAND,void 0),e.dispatchCommand(L.TOGGLE_ADD_TAGS_COMMAND,!1))}},ce=B?.plugin?.InputMetaPlugin,de=t.useMemo((()=>B?.toolbox?.moreActions?"function"==typeof B.toolbox.moreActions?B.toolbox.moreActions(I,X):B.toolbox.moreActions:[]),[B,I,X]);return e.jsx(O.default,{sx:[{border:"1px solid",borderColor:G?"action.disabled":"grey.100",borderRadius:1,outline:"none",width:"100%","& .NexusCommentRichTextInput-contentEditable":{p:3,outline:"none",width:"100%","&:after":{content:"attr(data-placeholder)",position:"absolute",color:"text.secondary",pointerEvents:"none",top:"12px",fontSize:"12px",lineHeight:"16px"}},"&:hover":{borderColor:G?"action.disabled":"text.primary"},"&:focus-within":{borderColor:"primary.main",boxShadow:`0 0 0 1px ${re.vars.palette.primary.main}`},...y.sharedSxProps},...Array.isArray(H)?H:[H]],ref:oe,...F,children:e.jsxs(i.LexicalComposer,{initialConfig:se,children:[e.jsx(N.default,{direction:"row",position:"relative",children:e.jsx(n.RichTextPlugin,{contentEditable:G?e.jsx(P.ReadOnlyContentEditable,{"data-placeholder":Z?k:"",className:`${D}-contentEditable`,"data-testid":`${D}-contentEditable`}):e.jsx(a.ContentEditable,{"data-placeholder":Z?k:"",className:`${D}-contentEditable`,"data-testid":`${D}-contentEditable`}),ErrorBoundary:M.default,placeholder:"edit"===I||z.length>0||U.length>0||X?null:e.jsx(O.default,{ref:ae,sx:{display:"flex",flexDirection:"row",alignItems:"center",mr:3},children:!le&&e.jsx(R.default,{"data-testid":`${D}-send`,sx:{color:"action.disabled"}})})})}),ce&&e.jsx(ce,{boxRef:oe,metadata:X,onMetadataChange:e=>{Y(e),ie(!0)}}),e.jsx(T.AttachmentsPlugin,{editable:!0,attachments:z,onAttachmentsChange:e=>{Q(e),ie(!0)},...B?.attachment,t:ne}),e.jsx(q.TagsPlugin,{ref:oe,t:ne,tags:U,tagOptions:B?.tag?.tagOptions,onTagsChange:e=>{W(e),ie(!0)},mode:"edit"}),e.jsx(h.ToolbarPlugin,{onSave:ue,onCancel:w,state:I,t:ne,isDataChanged:te,acceptableMimeTypes:B?.attachment?.acceptableMimeTypes,hasAttachments:z.length>0||U.length>0||!!X,...B?.toolbox,moreActions:de}),e.jsx(s.HistoryPlugin,{}),J&&e.jsx(u.AutoFocusPlugin,{defaultSelection:"rootEnd"}),e.jsx(p.MentionPlugin,{...B?.mention,t:ne}),e.jsx(j.LinkPlugin,{}),e.jsx(b.AutoLinkPlugin,{}),e.jsx(C.InsertLinkPlugin,{ref:oe,t:ne}),e.jsx(f.KeyboardPlugin,{onSave:ue,isDataChanged:te,hasAttachments:z.length>0||U.length>0||!!X}),e.jsx(o.OnChangePlugin,{ignoreSelectionChange:!0,onChange:e=>{V(e),ie(!0)}}),e.jsx(r.ClearEditorPlugin,{})]})})};