Fix links after emoji #2

merged
opened by harald.gigawatt.nl targeting main from harald.gigawatt.nl/red-dwarf: fix-links-after-emoji

JavaScript strings are encoded as UTF-16. When a Unicode character outside of the BMP is part of a string, it is encoded as a surrogate pair. For instance, '🎨' is encoded as '\uD83C\uDFA8', but a for-of loop will treat that as a single character with length 2. In getByteToCharMap, this was not handled, resulting in an incorrect value of charIndex and links being placed at the wrong location in messages.

Changed files
+1 -1
src
+1 -1
src/components/UniversalPostRenderer.tsx
··· 2297 2297 for (let i = 0; i < bytes.length; i++) { 2298 2298 map[byteIndex++] = charIndex; 2299 2299 } 2300 - charIndex++; 2300 + charIndex+=char.length; 2301 2301 } 2302 2302 2303 2303 return map;