diff --git a/src/components/common/helpers/renderTextWithEntities.tsx b/src/components/common/helpers/renderTextWithEntities.tsx
index 605100c72..721669192 100644
--- a/src/components/common/helpers/renderTextWithEntities.tsx
+++ b/src/components/common/helpers/renderTextWithEntities.tsx
@@ -7,9 +7,11 @@ import type { TextPart, ThreadId } from '../../../types';
import type { TextFilter } from './renderText';
import { ApiMessageEntityTypes } from '../../../api/types';
+import { ensureProtocol } from '../../../util/browser/url';
import buildClassName from '../../../util/buildClassName';
import { copyTextToClipboard } from '../../../util/clipboard';
import { buildFormattedDateHtml } from '../../../util/dates/formattedDate';
+import { escapeHtmlAttribute } from '../../middle/composer/helpers/cleanHtml';
import { buildCustomEmojiHtmlFromEntity } from '../../middle/composer/helpers/customEmoji';
import renderText from './renderText';
@@ -753,7 +755,7 @@ function processEntityAsHtml(
case ApiMessageEntityTypes.TextUrl:
return `${renderedContent}`;
@@ -781,6 +783,10 @@ function getLinkUrl(entityContent: string, entity: ApiMessageEntity) {
return type === ApiMessageEntityTypes.TextUrl && entity.url ? entity.url : entityContent;
}
+function getHtmlLinkUrl(entityContent: string, entity: ApiMessageEntity) {
+ return escapeHtmlAttribute(ensureProtocol(getLinkUrl(entityContent, entity)));
+}
+
function handleBotCommandClick(e: React.MouseEvent) {
getActions().sendBotCommand({ command: e.currentTarget.innerText });
}
diff --git a/src/components/middle/composer/helpers/cleanHtml.ts b/src/components/middle/composer/helpers/cleanHtml.ts
index 45962da36..4c9cd03ba 100644
--- a/src/components/middle/composer/helpers/cleanHtml.ts
+++ b/src/components/middle/composer/helpers/cleanHtml.ts
@@ -2,12 +2,32 @@ import { ApiMessageEntityTypes } from '../../../../api/types';
import { DEBUG } from '../../../../config';
import cleanDocsHtml from '../../../../lib/cleanDocsHtml';
-import { ENTITY_CLASS_BY_NODE_NAME } from '../../../../util/parseHtmlAsFormattedText';
const STYLE_TAG_REGEX = /