Fix flag emoji 'profile picture' rendering

This commit is contained in:
Jack Kingsman
2026-01-22 20:13:27 -08:00
parent 184ef84af1
commit 50aa9a950d
5 changed files with 12 additions and 5 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -13,7 +13,7 @@
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<script type="module" crossorigin src="/assets/index-CEs7-vRv.js"></script>
<script type="module" crossorigin src="/assets/index-Cc-6GQU2.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-6X8xpvpN.css">
</head>
<body>

View File

@@ -13,6 +13,12 @@ describe('getAvatarText', () => {
expect(getAvatarText('Test 😀 More 🎯', 'abc123')).toBe('😀');
});
it('returns full flag emoji (not just first regional indicator)', () => {
expect(getAvatarText('Jason 🇺🇸', 'abc123')).toBe('🇺🇸');
expect(getAvatarText('🇬🇧 London', 'abc123')).toBe('🇬🇧');
expect(getAvatarText('Test 🇯🇵 Japan', 'abc123')).toBe('🇯🇵');
});
it('returns initials when name has space', () => {
expect(getAvatarText('John Doe', 'abc123')).toBe('JD');
expect(getAvatarText('Alice Bob Charlie', 'abc123')).toBe('AB');

View File

@@ -28,8 +28,9 @@ function hashString(str: string): number {
}
// Regex to match emoji (covers most common emoji ranges)
// Flag emojis (e.g., 🇺🇸) are TWO consecutive regional indicator symbols, so we match those first
const emojiRegex =
/[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{1F600}-\u{1F64F}]|[\u{1F680}-\u{1F6FF}]|[\u{1F1E0}-\u{1F1FF}]/u;
/[\u{1F1E0}-\u{1F1FF}]{2}|[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{1F600}-\u{1F64F}]|[\u{1F680}-\u{1F6FF}]/u;
/**
* Extract display characters from a contact name.