diff --git a/src/common/util/textUtils.ts b/src/common/util/textUtils.ts index 2f85d6915..b1d36f9e1 100644 --- a/src/common/util/textUtils.ts +++ b/src/common/util/textUtils.ts @@ -89,4 +89,25 @@ export function ellipsizeEnd(text: string, maxLength: number, maxLines?: number) } return text; +} + + +export function textEscapeHtml(text: string): string { + return text + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + + +export function textIsSingleEmoji(text: string): boolean { + if (!Intl.Segmenter) + throw new Error('Intl.Segmenter is not supported'); + + // create segmenter instance with default locale + const segmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' }); + const segments = Array.from(segmenter.segment(text)); + return segments.length === 1; } \ No newline at end of file