Profile: Fix parsing multiple links in bio (#1219)

This commit is contained in:
Alexander Zinchuk 2021-06-30 05:23:09 +03:00
parent 15300721c3
commit 82a9fdefe7
2 changed files with 5 additions and 5 deletions

View File

@ -1,7 +1,7 @@
import React from '../../../lib/teact/teact';
import EMOJI_REGEX, { removeVS16s } from '../../../lib/twemojiRegex';
import { RE_LINK_TEMPLATE } from '../../../config';
import { RE_LINK_TEMPLATE, RE_MENTION_TEMPLATE } from '../../../config';
import { IS_EMOJI_SUPPORTED } from '../../../util/environment';
import { nativeToUnfified } from '../../../util/emoji';
import buildClassName from '../../../util/buildClassName';
@ -177,8 +177,7 @@ function addHighlight(textParts: TextPart[], highlight: string | undefined): Tex
}, [] as TextPart[]);
}
const RE_LINK = new RegExp(RE_LINK_TEMPLATE, 'ig');
const RE_MENTION = /@[\w\d_-]+/ig;
const RE_LINK = new RegExp(`${RE_LINK_TEMPLATE}|${RE_MENTION_TEMPLATE}`, 'ig');
function addLinks(textParts: TextPart[]): TextPart[] {
return textParts.reduce((result, part) => {
@ -186,8 +185,8 @@ function addLinks(textParts: TextPart[]): TextPart[] {
return [...result, part];
}
const links = [...(part.match(RE_LINK) || []), ...(part.match(RE_MENTION) || [])];
if (!links.length) {
const links = part.match(RE_LINK);
if (!links || !links.length) {
return [...result, part];
}

View File

@ -115,6 +115,7 @@ export const CONTENT_TYPES_FOR_QUICK_UPLOAD = 'image/png,image/gif,image/jpeg,vi
// eslint-disable-next-line max-len
export const RE_LINK_TEMPLATE = '((ftp|https?):\\/\\/)?((www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6})\\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)';
export const RE_MENTION_TEMPLATE = '(@[\\w\\d_-]+)';
export const RE_TME_LINK = /^(?:https?:\/\/)?(?:t\.me\/)([\d\w_]+)(?:\/([\d]+))?$/gm;
export const RE_TME_INVITE_LINK = /^(?:https?:\/\/)?(?:t\.me\/joinchat\/)([\d\w_-]+)?$/gm;