From 7477ff9e5999b9c957bc737e7e5e18cd05df8a14 Mon Sep 17 00:00:00 2001 From: Germain Date: Wed, 26 Jul 2023 17:29:16 +0100 Subject: [PATCH 1/3] Upgrade wysiwyg editor for ctrl+backspace windows fix --- package.json | 2 +- yarn.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 34cc53e9843..7dbd8933fdc 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "dependencies": { "@babel/runtime": "^7.12.5", "@matrix-org/analytics-events": "^0.5.0", - "@matrix-org/matrix-wysiwyg": "^2.3.1", + "@matrix-org/matrix-wysiwyg": "^2.4.1", "@matrix-org/react-sdk-module-api": "^1.0.0", "@sentry/browser": "^7.0.0", "@sentry/tracing": "^7.0.0", diff --git a/yarn.lock b/yarn.lock index 1820ee78b7e..a3b32f95cda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1810,9 +1810,9 @@ integrity sha512-VTwV5IowvhhLXwAsDDAv02bC5/qBQbG2YtpYAije11253sQ3MePIoSR+dS40Ih3lAlEzqQ00GU3O+i45jMzIRQ== "@matrix-org/matrix-wysiwyg@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-2.3.1.tgz#4b607323f3ffd8c332abeba7226010ecc031ed12" - integrity sha512-OxJvA+pSGdP2f55foZGEDmU2qvILFLLjV53MOgPw1F6zDAp8nDL1rPPIzFv1qgDj5W7d4Rzq7FnN25vINnAu+A== + version "2.4.1" + resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-2.4.1.tgz#e1325a42366a1c891b2ba90c88e597b39187b2cb" + integrity sha512-RyUijZXVKenE9s3LczDUhWFeOfIyLcsOrAyHqYxnizXX5nxMkHxTgLeoTvaIJ+1dOhI+H2SS9G4VcN6odZ0aNg== "@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz": version "3.2.14" From b957783a728abf078abe4ec9482dcb025f57fe36 Mon Sep 17 00:00:00 2001 From: Germain Date: Thu, 27 Jul 2023 12:05:12 +0100 Subject: [PATCH 2/3] upgrade lockfile --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 1917f2be5d5..5dce2145e5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1801,7 +1801,7 @@ resolved "https://registry.yarnpkg.com/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-1.0.1.tgz#21a0557a7bb3f60b37c6d412be8906c056fe79b8" integrity sha512-VTwV5IowvhhLXwAsDDAv02bC5/qBQbG2YtpYAije11253sQ3MePIoSR+dS40Ih3lAlEzqQ00GU3O+i45jMzIRQ== -"@matrix-org/matrix-wysiwyg@^2.3.1": +"@matrix-org/matrix-wysiwyg@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-2.4.1.tgz#e1325a42366a1c891b2ba90c88e597b39187b2cb" integrity sha512-RyUijZXVKenE9s3LczDUhWFeOfIyLcsOrAyHqYxnizXX5nxMkHxTgLeoTvaIJ+1dOhI+H2SS9G4VcN6odZ0aNg== From a662296dda536506b3b5317d49802159d09bd455 Mon Sep 17 00:00:00 2001 From: Germain Date: Thu, 27 Jul 2023 12:45:56 +0100 Subject: [PATCH 3/3] Fix after upgrading the wysiswyg package --- src/components/views/rooms/MessageComposer.tsx | 2 +- .../rooms/wysiwyg_composer/DynamicImportWysiwygComposer.tsx | 4 +++- .../rooms/wysiwyg_composer/utils/createMessageContent.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx index 8235134537e..d51f60bf860 100644 --- a/src/components/views/rooms/MessageComposer.tsx +++ b/src/components/views/rooms/MessageComposer.tsx @@ -371,7 +371,7 @@ export class MessageComposer extends React.Component { const { isRichTextEnabled, composerContent } = this.state; const convertedContent = isRichTextEnabled - ? await richToPlain(composerContent) + ? await richToPlain(composerContent, false) : await plainToRich(composerContent, false); this.setState({ diff --git a/src/components/views/rooms/wysiwyg_composer/DynamicImportWysiwygComposer.tsx b/src/components/views/rooms/wysiwyg_composer/DynamicImportWysiwygComposer.tsx index ba41bd4055d..2e02fb57193 100644 --- a/src/components/views/rooms/wysiwyg_composer/DynamicImportWysiwygComposer.tsx +++ b/src/components/views/rooms/wysiwyg_composer/DynamicImportWysiwygComposer.tsx @@ -45,9 +45,11 @@ export const dynamicImportConversionFunctions = async (): Promise<{ * ensure that HTML entities are correctly interpreted, and to prevent newline characters being turned into `
`. * * @param rich - html to convert + * @param inMessageFormat - `true` to format the return value for use as a message `formatted_body`. + * `false` to format it for writing to an editor element. * @returns a string of plain text that may contain markdown */ - richToPlain(rich: string): Promise; + richToPlain(rich: string, inMessageFormat: boolean): Promise; /** * Creates a rust model from plain text input (interpreted as markdown) and uses it to generate the rich text diff --git a/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts b/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts index aa469a5fd29..58a4795c2a7 100644 --- a/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts +++ b/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts @@ -96,7 +96,7 @@ export async function createMessageContent( // if we're editing rich text, the message content is pure html // BUT if we're not, the message content will be plain text where we need to convert the mentions - const body = isHTML ? await richToPlain(message) : convertPlainTextToBody(message); + const body = isHTML ? await richToPlain(message, false) : convertPlainTextToBody(message); const bodyPrefix = (isReplyAndEditing && getTextReplyFallback(editedEvent)) || ""; const formattedBodyPrefix = (isReplyAndEditing && getHtmlReplyFallback(editedEvent)) || "";