Web Platformadvanced
Intl.Segmenter for emoji-safe text truncation
const segmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" });
export const truncateGraphemes = (text: string, maxLength: number) => {
const graphemes = Array.from(segmenter.segment(text), (s) => s.segment);
if (graphemes.length <= maxLength) return text;Truncate user text to N visible characters without splitting a multi-codepoint emoji or accented letter in half.