UNPKG

matrix-react-sdk

Version:
61 lines (57 loc) 9.62 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.parseEditorStateTransfer = parseEditorStateTransfer; exports.useInitialContent = useInitialContent; var _react = require("react"); var _MatrixClientContext = require("../../../../../contexts/MatrixClientContext"); var _RoomContext = require("../../../../../contexts/RoomContext"); var _deserialize = require("../../../../../editor/deserialize"); var _parts = require("../../../../../editor/parts"); var _SettingsStore = _interopRequireDefault(require("../../../../../settings/SettingsStore")); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ function getFormattedContent(editorStateTransfer) { return editorStateTransfer.getEvent().getContent().formatted_body?.replace(/<mx-reply>.*<\/mx-reply>/, "") || ""; } function parseEditorStateTransfer(editorStateTransfer, room, mxClient) { const partCreator = new _parts.CommandPartCreator(room, mxClient); let parts = []; if (editorStateTransfer.hasEditorState()) { // if restoring state from a previous editor, // restore serialized parts from the state const serializedParts = editorStateTransfer.getSerializedParts(); if (serializedParts !== null) { parts = serializedParts.map(p => partCreator.deserializePart(p)); } } else { // otherwise, either restore serialized parts from localStorage or parse the body of the event // TODO local storage // const restoredParts = this.restoreStoredEditorState(partCreator); if (editorStateTransfer.getEvent().getContent().format === "org.matrix.custom.html") { return getFormattedContent(editorStateTransfer); } parts = (0, _deserialize.parseEvent)(editorStateTransfer.getEvent(), partCreator, { shouldEscape: _SettingsStore.default.getValue("MessageComposerInput.useMarkdown") }); } return parts.reduce((content, part) => content + part?.text, ""); // Todo local storage // this.saveStoredEditorState(); } function useInitialContent(editorStateTransfer) { const roomContext = (0, _RoomContext.useRoomContext)(); const mxClient = (0, _MatrixClientContext.useMatrixClientContext)(); return (0, _react.useMemo)(() => { if (editorStateTransfer && roomContext.room && mxClient) { return parseEditorStateTransfer(editorStateTransfer, roomContext.room, mxClient); } }, [editorStateTransfer, roomContext, mxClient]); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX01hdHJpeENsaWVudENvbnRleHQiLCJfUm9vbUNvbnRleHQiLCJfZGVzZXJpYWxpemUiLCJfcGFydHMiLCJfU2V0dGluZ3NTdG9yZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJnZXRGb3JtYXR0ZWRDb250ZW50IiwiZWRpdG9yU3RhdGVUcmFuc2ZlciIsImdldEV2ZW50IiwiZ2V0Q29udGVudCIsImZvcm1hdHRlZF9ib2R5IiwicmVwbGFjZSIsInBhcnNlRWRpdG9yU3RhdGVUcmFuc2ZlciIsInJvb20iLCJteENsaWVudCIsInBhcnRDcmVhdG9yIiwiQ29tbWFuZFBhcnRDcmVhdG9yIiwicGFydHMiLCJoYXNFZGl0b3JTdGF0ZSIsInNlcmlhbGl6ZWRQYXJ0cyIsImdldFNlcmlhbGl6ZWRQYXJ0cyIsIm1hcCIsInAiLCJkZXNlcmlhbGl6ZVBhcnQiLCJmb3JtYXQiLCJwYXJzZUV2ZW50Iiwic2hvdWxkRXNjYXBlIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwicmVkdWNlIiwiY29udGVudCIsInBhcnQiLCJ0ZXh0IiwidXNlSW5pdGlhbENvbnRlbnQiLCJyb29tQ29udGV4dCIsInVzZVJvb21Db250ZXh0IiwidXNlTWF0cml4Q2xpZW50Q29udGV4dCIsInVzZU1lbW8iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2hvb2tzL3VzZUluaXRpYWxDb250ZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IE1hdHJpeENsaWVudCwgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgdXNlTWF0cml4Q2xpZW50Q29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jb250ZXh0cy9NYXRyaXhDbGllbnRDb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VSb29tQ29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9jb250ZXh0cy9Sb29tQ29udGV4dFwiO1xuaW1wb3J0IHsgcGFyc2VFdmVudCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9lZGl0b3IvZGVzZXJpYWxpemVcIjtcbmltcG9ydCB7IENvbW1hbmRQYXJ0Q3JlYXRvciwgUGFydCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9lZGl0b3IvcGFydHNcIjtcbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nc1N0b3JlXCI7XG5pbXBvcnQgRWRpdG9yU3RhdGVUcmFuc2ZlciBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvRWRpdG9yU3RhdGVUcmFuc2ZlclwiO1xuXG5mdW5jdGlvbiBnZXRGb3JtYXR0ZWRDb250ZW50KGVkaXRvclN0YXRlVHJhbnNmZXI6IEVkaXRvclN0YXRlVHJhbnNmZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICAgIGVkaXRvclN0YXRlVHJhbnNmZXJcbiAgICAgICAgICAgIC5nZXRFdmVudCgpXG4gICAgICAgICAgICAuZ2V0Q29udGVudCgpXG4gICAgICAgICAgICAuZm9ybWF0dGVkX2JvZHk/LnJlcGxhY2UoLzxteC1yZXBseT4uKjxcXC9teC1yZXBseT4vLCBcIlwiKSB8fCBcIlwiXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRWRpdG9yU3RhdGVUcmFuc2ZlcihcbiAgICBlZGl0b3JTdGF0ZVRyYW5zZmVyOiBFZGl0b3JTdGF0ZVRyYW5zZmVyLFxuICAgIHJvb206IFJvb20sXG4gICAgbXhDbGllbnQ6IE1hdHJpeENsaWVudCxcbik6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydENyZWF0b3IgPSBuZXcgQ29tbWFuZFBhcnRDcmVhdG9yKHJvb20sIG14Q2xpZW50KTtcblxuICAgIGxldCBwYXJ0czogKFBhcnQgfCB1bmRlZmluZWQpW10gPSBbXTtcbiAgICBpZiAoZWRpdG9yU3RhdGVUcmFuc2Zlci5oYXNFZGl0b3JTdGF0ZSgpKSB7XG4gICAgICAgIC8vIGlmIHJlc3RvcmluZyBzdGF0ZSBmcm9tIGEgcHJldmlvdXMgZWRpdG9yLFxuICAgICAgICAvLyByZXN0b3JlIHNlcmlhbGl6ZWQgcGFydHMgZnJvbSB0aGUgc3RhdGVcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZFBhcnRzID0gZWRpdG9yU3RhdGVUcmFuc2Zlci5nZXRTZXJpYWxpemVkUGFydHMoKTtcbiAgICAgICAgaWYgKHNlcmlhbGl6ZWRQYXJ0cyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcGFydHMgPSBzZXJpYWxpemVkUGFydHMubWFwKChwKSA9PiBwYXJ0Q3JlYXRvci5kZXNlcmlhbGl6ZVBhcnQocCkpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gb3RoZXJ3aXNlLCBlaXRoZXIgcmVzdG9yZSBzZXJpYWxpemVkIHBhcnRzIGZyb20gbG9jYWxTdG9yYWdlIG9yIHBhcnNlIHRoZSBib2R5IG9mIHRoZSBldmVudFxuICAgICAgICAvLyBUT0RPIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgLy8gY29uc3QgcmVzdG9yZWRQYXJ0cyA9IHRoaXMucmVzdG9yZVN0b3JlZEVkaXRvclN0YXRlKHBhcnRDcmVhdG9yKTtcblxuICAgICAgICBpZiAoZWRpdG9yU3RhdGVUcmFuc2Zlci5nZXRFdmVudCgpLmdldENvbnRlbnQoKS5mb3JtYXQgPT09IFwib3JnLm1hdHJpeC5jdXN0b20uaHRtbFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Rm9ybWF0dGVkQ29udGVudChlZGl0b3JTdGF0ZVRyYW5zZmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnRzID0gcGFyc2VFdmVudChlZGl0b3JTdGF0ZVRyYW5zZmVyLmdldEV2ZW50KCksIHBhcnRDcmVhdG9yLCB7XG4gICAgICAgICAgICBzaG91bGRFc2NhcGU6IFNldHRpbmdzU3RvcmUuZ2V0VmFsdWUoXCJNZXNzYWdlQ29tcG9zZXJJbnB1dC51c2VNYXJrZG93blwiKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLnJlZHVjZSgoY29udGVudCwgcGFydCkgPT4gY29udGVudCArIHBhcnQ/LnRleHQsIFwiXCIpO1xuICAgIC8vIFRvZG8gbG9jYWwgc3RvcmFnZVxuICAgIC8vIHRoaXMuc2F2ZVN0b3JlZEVkaXRvclN0YXRlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbml0aWFsQ29udGVudChlZGl0b3JTdGF0ZVRyYW5zZmVyOiBFZGl0b3JTdGF0ZVRyYW5zZmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByb29tQ29udGV4dCA9IHVzZVJvb21Db250ZXh0KCk7XG4gICAgY29uc3QgbXhDbGllbnQgPSB1c2VNYXRyaXhDbGllbnRDb250ZXh0KCk7XG5cbiAgICByZXR1cm4gdXNlTWVtbzxzdHJpbmcgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICAgICAgaWYgKGVkaXRvclN0YXRlVHJhbnNmZXIgJiYgcm9vbUNvbnRleHQucm9vbSAmJiBteENsaWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRWRpdG9yU3RhdGVUcmFuc2ZlcihlZGl0b3JTdGF0ZVRyYW5zZmVyLCByb29tQ29udGV4dC5yb29tLCBteENsaWVudCk7XG4gICAgICAgIH1cbiAgICB9LCBbZWRpdG9yU3RhdGVUcmFuc2Zlciwgcm9vbUNvbnRleHQsIG14Q2xpZW50XSk7XG59XG4iXSwibWFwcGlu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