diff --git a/front/src/WebRtc/HtmlUtils.ts b/front/src/WebRtc/HtmlUtils.ts index c266d558..1c6b8817 100644 --- a/front/src/WebRtc/HtmlUtils.ts +++ b/front/src/WebRtc/HtmlUtils.ts @@ -40,6 +40,7 @@ export class HtmlUtils { const urlRegex = /(https?:\/\/[^\s]+)/g; text = HtmlUtils.escapeHtml(text); return text.replace(urlRegex, (url: string) => { + url = HtmlUtils.htmlDecode(url); const link = document.createElement("a"); link.href = url; link.target = "_blank"; @@ -50,6 +51,15 @@ export class HtmlUtils { }); } + private static htmlDecode(input: string): string { + const doc = new DOMParser().parseFromString(input, "text/html"); + const text = doc.documentElement.textContent; + if (text === null) { + throw new Error("Unexpected non parseable string"); + } + return text; + } + public static isClickedInside(event: MouseEvent, target: HTMLElement): boolean { return !!event.composedPath().find((et) => et === target); }