From 24cc2455f97ac24ce9df130c5b252206b1afa63d Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Thu, 3 Jul 2025 12:35:55 +0100 Subject: [PATCH 1/4] Add message hint to prevent media from being downloaded. --- .../element-web-module-api/element-web-module-api.api.md | 1 + .../element-web-module-api/src/api/custom-components.ts | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/packages/element-web-module-api/element-web-module-api.api.md b/packages/element-web-module-api/element-web-module-api.api.md index 6d6403735e..ce5f5e8ea5 100644 --- a/packages/element-web-module-api/element-web-module-api.api.md +++ b/packages/element-web-module-api/element-web-module-api.api.md @@ -78,6 +78,7 @@ originalComponent?: (props?: OriginalComponentProps) => React.JSX.Element) => JS // @alpha export type CustomMessageRenderHints = { allowEditingEvent?: boolean; + allowDownloadingMedia?: boolean | Promise; }; // @alpha @deprecated (undocumented) diff --git a/packages/element-web-module-api/src/api/custom-components.ts b/packages/element-web-module-api/src/api/custom-components.ts index becc0f1992..67d7a6bef9 100644 --- a/packages/element-web-module-api/src/api/custom-components.ts +++ b/packages/element-web-module-api/src/api/custom-components.ts @@ -44,6 +44,12 @@ export type CustomMessageRenderHints = { * Default is true. */ allowEditingEvent?: boolean; + /** + * If an event contains media, this function will be called to check + * if the media can be prompted to be downloaded as a file. + * Default is true. + */ + allowDownloadingMedia?: (mxEvent: MatrixEvent) => Promise; }; /** From cfb8c685d4fe5f926783bba8f475d78f583de0b9 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Thu, 3 Jul 2025 13:06:26 +0100 Subject: [PATCH 2/4] update sig --- packages/element-web-module-api/element-web-module-api.api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/element-web-module-api/element-web-module-api.api.md b/packages/element-web-module-api/element-web-module-api.api.md index ce5f5e8ea5..81fd045f8f 100644 --- a/packages/element-web-module-api/element-web-module-api.api.md +++ b/packages/element-web-module-api/element-web-module-api.api.md @@ -78,7 +78,7 @@ originalComponent?: (props?: OriginalComponentProps) => React.JSX.Element) => JS // @alpha export type CustomMessageRenderHints = { allowEditingEvent?: boolean; - allowDownloadingMedia?: boolean | Promise; + allowDownloadingMedia?: (mxEvent: MatrixEvent) => Promise; }; // @alpha @deprecated (undocumented) From 0b5681bf5bfa83bc5e3e13569bbeb169a033eddf Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Thu, 3 Jul 2025 14:08:10 +0100 Subject: [PATCH 3/4] Update custom-components.ts --- packages/element-web-module-api/src/api/custom-components.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/element-web-module-api/src/api/custom-components.ts b/packages/element-web-module-api/src/api/custom-components.ts index 67d7a6bef9..ba477057cf 100644 --- a/packages/element-web-module-api/src/api/custom-components.ts +++ b/packages/element-web-module-api/src/api/custom-components.ts @@ -47,7 +47,7 @@ export type CustomMessageRenderHints = { /** * If an event contains media, this function will be called to check * if the media can be prompted to be downloaded as a file. - * Default is true. + * If this function is not supplied, media downloads are allowed. */ allowDownloadingMedia?: (mxEvent: MatrixEvent) => Promise; }; From 0b82316dbe09c02940f5c53ef9af8cf1645387ab Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Fri, 4 Jul 2025 15:46:04 +0100 Subject: [PATCH 4/4] element-web-module-api 1.3.0 --- packages/element-web-module-api/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/element-web-module-api/package.json b/packages/element-web-module-api/package.json index 2e08d65adc..30c6f69d99 100644 --- a/packages/element-web-module-api/package.json +++ b/packages/element-web-module-api/package.json @@ -1,7 +1,7 @@ { "name": "@element-hq/element-web-module-api", "type": "module", - "version": "1.2.0", + "version": "1.3.0", "description": "Module API surface for element-web", "repository": { "type": "git",