diff --git a/src/linkify-matrix.ts b/src/linkify-matrix.ts index 070eb3f29c..f6dcbfff6f 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;