From 6e99b2fca3ed99359bfdf58eafe797fc8f0c6c49 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 11 Jul 2023 08:25:51 +0100 Subject: [PATCH] Linkify mxc:// URLs as links to your media repo (#11213) --- src/linkify-matrix.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/linkify-matrix.ts b/src/linkify-matrix.ts index 070eb3f29cc..f6dcbfff6f4 100644 --- a/src/linkify-matrix.ts +++ b/src/linkify-matrix.ts @@ -19,7 +19,7 @@ import * as linkifyjs from "linkifyjs"; import { EventListeners, Opts, registerCustomProtocol, registerPlugin } from "linkifyjs"; import linkifyElement from "linkify-element"; import linkifyString from "linkify-string"; -import { User } from "matrix-js-sdk/src/matrix"; +import { getHttpUriForMxc, User } from "matrix-js-sdk/src/matrix"; import { parsePermalink, @@ -186,6 +186,11 @@ export const options: Opts = { formatHref: function (href: string, type: Type | string): string { switch (type) { + case "url": + if (href.startsWith("mxc://") && MatrixClientPeg.get()) { + return getHttpUriForMxc(MatrixClientPeg.get()!.baseUrl, href); + } + // fallthrough case Type.RoomAlias: case Type.UserId: default: { @@ -270,6 +275,8 @@ PERMITTED_URL_SCHEMES.forEach((scheme) => { } }); +registerCustomProtocol("mxc", false); + export const linkify = linkifyjs; export const _linkifyElement = linkifyElement; export const _linkifyString = linkifyString;