Remove reliance on DOM API to generated message preview
This commit is contained in:
parent
d9dac7b261
commit
2b6551d06a
2 changed files with 10 additions and 7 deletions
|
@ -130,11 +130,14 @@ export function sanitizedHtmlNode(insaneHtml: string) {
|
||||||
return <div dangerouslySetInnerHTML={{ __html: saneHtml }} dir="auto" />;
|
return <div dangerouslySetInnerHTML={{ __html: saneHtml }} dir="auto" />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function sanitizedHtmlNodeInnerText(insaneHtml: string) {
|
export function getHtmlText(insaneHtml: string) {
|
||||||
const saneHtml = sanitizeHtml(insaneHtml, sanitizeHtmlParams);
|
return sanitizeHtml(insaneHtml, {
|
||||||
const contentDiv = document.createElement("div");
|
allowedTags: [],
|
||||||
contentDiv.innerHTML = saneHtml;
|
allowedAttributes: {},
|
||||||
return contentDiv.innerText;
|
selfClosing: [],
|
||||||
|
allowedSchemes: [],
|
||||||
|
disallowedTagsMode: 'discard',
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,7 +20,7 @@ import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import { getSenderName, isSelf, shouldPrefixMessagesIn } from "./utils";
|
import { getSenderName, isSelf, shouldPrefixMessagesIn } from "./utils";
|
||||||
import ReplyThread from "../../../components/views/elements/ReplyThread";
|
import ReplyThread from "../../../components/views/elements/ReplyThread";
|
||||||
import { sanitizedHtmlNodeInnerText } from "../../../HtmlUtils";
|
import { getHtmlText } from "../../../HtmlUtils";
|
||||||
|
|
||||||
export class MessageEventPreview implements IPreview {
|
export class MessageEventPreview implements IPreview {
|
||||||
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
public getTextFor(event: MatrixEvent, tagId?: TagID): string {
|
||||||
|
@ -55,7 +55,7 @@ export class MessageEventPreview implements IPreview {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasHtml) {
|
if (hasHtml) {
|
||||||
body = sanitizedHtmlNodeInnerText(body);
|
body = getHtmlText(body);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msgtype === 'm.emote') {
|
if (msgtype === 'm.emote') {
|
||||||
|
|
Loading…
Reference in a new issue