mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-20 02:08:57 +00:00
Fix link previews for messages with emojis
This commit is contained in:
committed by
Jamie Kyle
parent
fd9f7a9fba
commit
2fb73bd753
@@ -116,6 +116,24 @@ describe('Link previews', () => {
|
||||
assert.deepEqual(expected, actual);
|
||||
});
|
||||
|
||||
it('returns all links after emojis with spaces in between, if a caretLocation is provided', () => {
|
||||
const text = '😎 https://github.com/signalapp/Signal-Desktop';
|
||||
|
||||
const expected = ['https://github.com/signalapp/Signal-Desktop'];
|
||||
|
||||
const actual = findLinks(text, 45);
|
||||
assert.deepEqual(expected, actual);
|
||||
});
|
||||
|
||||
it('returns all links after a complex emoji, if a caretLocation is provided', () => {
|
||||
const text = '👨👩👦 https://github.com/signalapp/Signal-Desktop';
|
||||
|
||||
const expected = ['https://github.com/signalapp/Signal-Desktop'];
|
||||
|
||||
const actual = findLinks(text, 45);
|
||||
assert.deepEqual(expected, actual);
|
||||
});
|
||||
|
||||
it('includes all links if cursor is not in a link', () => {
|
||||
const text =
|
||||
'Check out this link: https://github.com/signalapp/Signal-Desktop\nAnd this one too: https://github.com/signalapp/Signal-Android';
|
||||
|
||||
@@ -10,6 +10,7 @@ import LinkifyIt from 'linkify-it';
|
||||
|
||||
import { maybeParseUrl } from '../util/url.js';
|
||||
import { replaceEmojiWithSpaces } from '../util/emoji.js';
|
||||
import { count } from '../util/grapheme.js';
|
||||
|
||||
import type { AttachmentWithHydratedData } from './Attachment.js';
|
||||
import {
|
||||
@@ -167,7 +168,7 @@ export function findLinks(text: string, caretLocation?: number): Array<string> {
|
||||
}
|
||||
|
||||
const haveCaretLocation = isNumber(caretLocation);
|
||||
const textLength = text ? text.length : 0;
|
||||
const textLength = count(text || '');
|
||||
|
||||
const matches = linkify.match(text ? replaceEmojiWithSpaces(text) : '') || [];
|
||||
return compact(
|
||||
|
||||
Reference in New Issue
Block a user