2 lines
8.9 KiB
JavaScript
2 lines
8.9 KiB
JavaScript
"use strict";(self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[6311],{"./src/components/views/rooms/wysiwyg_composer/EditWysiwygComposer.tsx":(e,t,s)=>{s.r(t),s.d(t,{default:()=>P});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),r=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),a=s.n(i),c=s("./src/components/views/rooms/wysiwyg_composer/components/WysiwygComposer.tsx"),l=s("./src/languageHandler.tsx"),m=s("./src/components/views/elements/AccessibleButton.tsx");function d({onCancelClick:e,onSaveClick:t,isSaveDisabled:s=!1}){return r.createElement("div",{className:"mx_EditWysiwygComposer_buttons"},r.createElement(m.A,{kind:"secondary",onClick:e},(0,l._t)("action|cancel")),r.createElement(m.A,{kind:"primary",onClick:t,disabled:s},(0,l._t)("action|save")))}var u=s("./src/dispatcher/dispatcher.ts"),p=s("./src/dispatcher/actions.ts"),g=s("./src/contexts/RoomContext.ts"),y=s("./src/hooks/useDispatcher.ts"),f=s("./src/components/views/rooms/wysiwyg_composer/hooks/utils.ts"),v=s("./src/dispatcher/payloads/ComposerInsertPayload.ts"),w=s("./src/components/views/rooms/wysiwyg_composer/utils/selection.ts"),b=s("./src/components/views/rooms/wysiwyg_composer/ComposerContext.ts"),h=s("./src/contexts/ScopedRoomContext.tsx");var _=s("./src/contexts/MatrixClientContext.tsx"),E=s("./src/components/views/rooms/wysiwyg_composer/utils/editing.ts"),x=s("./src/components/views/rooms/wysiwyg_composer/utils/message.ts");var C=s("./src/editor/deserialize.ts"),T=s("./src/editor/parts.ts"),A=s("./src/settings/SettingsStore.ts");function k(e){const{room:t}=(0,h.ME)("room"),s=(0,_.nH)();return(0,r.useMemo)(()=>{if(e&&t&&s)return function(e,t,s){const n=new T.dK(t,s);let o=[];if(e.hasEditorState()){const t=e.getSerializedParts();null!==t&&(o=t.map(e=>n.deserializePart(e)))}else{if("org.matrix.custom.html"===e.getEvent().getContent().format)return function(e){var t;return(null===(t=e.getEvent().getContent().formatted_body)||void 0===t?void 0:t.replace(/<mx-reply>.*<\/mx-reply>/,""))||""}(e);o=(0,C.wj)(e.getEvent(),n,{shouldEscape:A.A.getValue("MessageComposerInput.useMarkdown")})}return o.reduce((e,t)=>e+(null==t?void 0:t.text),"")}(e,t,s)},[e,t,s])}const S=["editorStateTransfer","className"],M=function({disabled:e=!1,composerFunctions:t,ref:s}){return function(e,t,s){const n=(0,h.ME)("timelineRenderingType"),o=(0,b.Hx)(),i=(0,r.useRef)(null),a=(0,r.useCallback)(r=>{var a;if(e||null==t||!t.current)return;const c=null!==(a=r.context)&&void 0!==a?a:g.Ae.Room;switch(r.action){case p.r.FocusEditMessageComposer:(0,f.Hj)(t,c,n,i);break;case p.r.ComposerInsert:if(r.timelineRenderingType!==n.timelineRenderingType)break;if(r.composerType!==v.D.Edit)break;r.text&&(0,w.td)(o.selection).then(()=>s.insertText(r.text))}},[e,t,s,i,n,o]);(0,y.F)(u.A,a)}(e,s,t),null};function P(e){let{editorStateTransfer:t,className:s}=e,i=(0,o.A)(e,S);const l=(0,r.useMemo)(()=>(0,b.AP)({editorStateTransfer:t}),[t]),m=k(t),u=!t||void 0!==m,{editMessage:p,endEditing:g,onChange:y,isSaveDisabled:f}=function(e,t){const s=(0,h.ME)("timelineRenderingType"),n=(0,_.nH)(),[o,i]=(0,r.useState)(!0),[a,c]=(0,r.useState)(t);return{onChange:(0,r.useCallback)(e=>{c(e),i(s=>s&&e===t)},[t]),editMessage:(0,r.useCallback)(async()=>{if(void 0!==n&&void 0!==a)return(0,x.u)(a,{roomContext:s,mxClient:n,editorStateTransfer:e})},[a,s,n,e]),endEditing:(0,r.useCallback)(()=>(0,E.w)(s),[s]),isSaveDisabled:o}}(t,m);return u?r.createElement(b.EW.Provider,{value:l},r.createElement(c.k,(0,n.A)({className:a()("mx_EditWysiwygComposer",s),initialContent:m,onChange:y,onSend:p},i),(e,t)=>r.createElement(r.Fragment,null,r.createElement(M,{disabled:i.disabled,ref:e,composerFunctions:t}),r.createElement(d,{onCancelClick:g,onSaveClick:p,isSaveDisabled:f})))):r.createElement(r.Fragment,null)}},"./src/components/views/rooms/wysiwyg_composer/utils/message.ts":(e,t,s)=>{s.d(t,{u:()=>P,sendMessage:()=>M});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/PosthogAnalytics.ts"),i=s("./src/settings/SettingsStore.ts"),a=s("./src/sendTimePerformanceMetrics.ts"),c=s("./src/utils/local-room.ts"),l=s("./src/effects/index.ts"),m=s("./src/effects/utils.ts"),d=s("./src/dispatcher/dispatcher.ts"),u=s("./src/components/views/dialogs/ConfirmRedactDialog.tsx"),p=s("./src/components/views/rooms/wysiwyg_composer/utils/editing.ts"),g=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),y=s("./node_modules/@vector-im/matrix-wysiwyg/dist/matrix-wysiwyg.js"),f=s("./src/utils/permalinks/Permalinks.ts"),v=s("./src/utils/Reply.ts"),w=s("./src/Typeguards.ts");function b(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?b(Object(s),!0).forEach(function(t){(0,g.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):b(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const _="/me ";const E=e=>e instanceof o.MatrixEvent;async function x(e,t,{relation:s,replyToEvent:n,editedEvent:r}){const a=E(r),c=e.startsWith(_);c&&(e=e.slice(_.length)),e.startsWith("//")&&(e=e.slice(1));const l=t?await(0,y.richToPlain)(e,!1):function(e){const t=(new DOMParser).parseFromString(e,"text/html");return Array.from(t.querySelectorAll("a[data-mention-type]")).forEach(e=>{switch(e.getAttribute("data-mention-type")){case"at-room":e.replaceWith("@room");break;case"user":{const t=e.innerHTML;e.replaceWith(t);break}case"room":{const t=e.getAttribute("href");if(null===t)break;const s=(0,f.$N)(t);(0,w.P)(s)&&(0,w.P)(s.roomIdOrAlias)&&e.replaceWith(s.roomIdOrAlias);break}}}),t.body.innerHTML}(e),m={msgtype:c?o.MsgType.Emote:o.MsgType.Text,body:a?`* ${l}`:l},d=i.A.getValue("MessageComposerInput.useMarkdown"),u=t?e:d?await(0,y.plainToRich)(e,!0):null;u&&(m.format="org.matrix.custom.html",m.formatted_body=a?`* ${u}`:u),a&&(m["m.new_content"]={msgtype:m.msgtype,body:l},u&&(m["m.new_content"].format="org.matrix.custom.html",m["m.new_content"].formatted_body=u));return function(e,t){t&&(e["m.relates_to"]=h(h({},e["m.relates_to"]||{}),t))}(m,a?h(h({},s),{},{rel_type:"m.replace",event_id:r.getId()}):s),!a&&n&&(0,v.fh)(m,n),m}var C=s("./src/SlashCommands.tsx"),T=s("./src/editor/commands.tsx"),A=s("./src/dispatcher/actions.ts"),k=s("./src/components/views/rooms/SendMessageComposer.tsx");const S=["roomContext","mxClient"];async function M(e,t,s){let{roomContext:u,mxClient:p}=s,g=(0,n.A)(s,S);const{relation:y,replyToEvent:f}=g,{room:w}=u,b=null==w?void 0:w.roomId;if(!b)return;const h={eventName:"Composer",isEditing:!1,messageType:"Text",isReply:Boolean(f),inThread:(null==y?void 0:y.rel_type)===o.THREAD_RELATION_TYPE.name};r.Vo.instance.trackEvent(h);let E=null;if(e.startsWith("/")&&!e.startsWith("//")&&!e.startsWith(_)){const{cmd:t,args:s}=(0,C.OE)(e);if(t){const e=(null==y?void 0:y.rel_type)===o.THREAD_RELATION_TYPE.name?null==y?void 0:y.event_id:null;let n;if([E,n]=await(0,T.m8)(p,t,s,b,null!=e?e:null),!n)return;if(!E||t.category!==C.ge.messages&&t.category!==C.ge.effects)return;(0,k.gV)(E,y),f&&(0,v.fh)(E,f)}else{const t=await(0,T.d8)(e);if(d.A.dispatch({action:A.r.FocusAComposer,context:u.timelineRenderingType}),!t)return}}if(null!=E||(E=await x(e,t,g)),!E.body.trim())return;i.A.getValue("Performance.addSendMessageTimingMetadata")&&(0,a.H)(E);const M=null!=y&&y.event_id&&(null==y?void 0:y.rel_type)===o.THREAD_RELATION_TYPE.name?y.event_id:null,P=(0,c.Y)(b,e=>p.sendMessage(e,M,E),p);return f&&d.A.dispatch({action:"reply_to_event",event:null,context:u.timelineRenderingType}),d.A.dispatch({action:"message_sent"}),l.y.forEach(e=>{if(E&&(0,m._)(E,e.emojis)){(null==y?void 0:y.rel_type)!==o.THREAD_RELATION_TYPE.name&&d.A.dispatch({action:`effects.${e.command}`})}}),i.A.getValue("Performance.addSendMessageTimingMetadata")&&P.then(e=>{(0,a._)(p,b,e.event_id)}),i.A.getValue("scrollToBottomOnMessageSent")&&d.A.dispatch({action:"scroll_to_bottom",timelineRenderingType:u.timelineRenderingType}),P}async function P(e,{roomContext:t,mxClient:s,editorStateTransfer:n}){const o=n.getEvent();r.Vo.instance.trackEvent({eventName:"Composer",isEditing:!0,messageType:"Text",inThread:Boolean(null==o?void 0:o.getThread()),isReply:Boolean(o.replyEventId)});const i=await x(e,!0,{editedEvent:o}),a=i["m.new_content"];if(""===(null==a?void 0:a.body))return(0,p.r)(s,n),void(0,u.Q)({mxEvent:o,onCloseDialog:()=>{(0,p.w)(t)}});let c;const l=o.getRoomId();if(function(e,t){const s=t.getEvent().getContent();return s.msgtype!==e.msgtype||s.body!==e.body||s.format!==e.format||s.formatted_body!==e.formatted_body}(a,n)&&l){(0,p.r)(s,n);const e=n.getEvent().threadRootId||null;c=s.sendMessage(l,e,i),d.A.dispatch({action:"message_sent"})}return(0,p.w)(t),c}}}]);
|
|
//# sourceMappingURL=6311.js.map
|