react / react/react-native

[Android] Last emoji in a Text is cut off when the text contains the 🫨 emoji (U+1FAE8)

Ouverte
#57,995 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs: Author Feedback Platform: Android Type: Unsupported Version
Langage dominant
C++
Étoiles
127k
Forks
25.3k
Merge moyen
1 j 23 h
PR mergées (30 j)
4

Description

Description

A <Text> whose content contains the 🫨 emoji (U+1FAE8, Unicode 15.0) renders with the last emoji of the line partially or fully cut off at specific text widths on Android. iOS is unaffected.

What we verified:

  • The 🫨 emoji is the trigger. We compared emoji suffixes of the same length (14 emoji) at the same text widths: a sequence containing 🫨 (😂🙁☠️😠🤔🥶🫨😺👏🏻🙁😂🥶😂😠) clips; 14 keycap sequences (1️⃣…🔟) and 14 single-codepoint emoji (🔴🟠🟡…) do not. Replacing 🫨 with another emoji in the failing sequence stops the clipping.
  • Width-dependent. Only strings whose width lands near the line-wrap boundary clip; adding or removing one letter makes the bug appear or disappear.
  • Device-dependent. Different devices clip at different string lengths (verified on Huawei P30 Pro VOG-L29 / Android 10 and a Samsung device; exact failing rows differ).
  • Version- and architecture-independent. Reproduces identically on RN 0.73 (old architecture) and RN 0.83.6 (new architecture) in the same app.
  • Not markdown/library related. Reproduces with a bare <Text>.
Steps to reproduce
  1. Clone https://github.com/mariia-korzun/EmojiEndClipRepro — a fresh community template where only App.tsx changed. It renders a sweep of 1–40 letters + a 14-emoji suffix in several layouts (chat bubble, fixed width, full width) plus a no-emoji control section, with the three suffix constants for comparison.
  2. yarn install && yarn android on an affected device.
  3. Scroll the EMOJI section: several rows show the last emoji clipped or invisible. The CONTROL section never clips. Replace 🫨 in the suffix — no row clips.

Expected: the trailing emoji is fully visible (as on iOS, and as with sequences without 🫨). So 😠 in the end should be visible

Actual: at specific widths the last emoji of the line is cut off. Screenshot attached.

With colors and numbers emojis all fine. Issue just when 🫨 in list. So 😠 in the end not visible

Image Image Image
React Native Version

0.83.6

Affected Platforms

Runtime - Android

Output of npx @react-native-community/cli info
System:
  OS: macOS 26.5.2
  CPU: (12) arm64 Apple M3 Pro
  Memory: 133.59 MB / 36.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.19.4
    path: /Users/mariiakorzun/.nvm/versions/node/v20.19.4/bin/node
  Yarn:
    version: 3.6.4
    path: /Users/mariiakorzun/.nvm/versions/node/v20.19.4/bin/yarn
  npm:
    version: 10.8.2
    path: /Users/mariiakorzun/.nvm/versions/node/v20.19.4/bin/npm
  Watchman:
    version: 2024.11.11.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.5
      - iOS 26.5
      - macOS 26.5
      - tvOS 26.5
      - visionOS 26.5
      - watchOS 26.5
  Android SDK:
    API Levels:
      - "31"
      - "33"
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 33.0.0
      - 33.0.1
      - 34.0.0
      - 35.0.0
      - 36.0.0
    System Images:
      - android-29 | Google Play ARM 64 v8a
      - android-33-ext5 | Google Play ARM 64 v8a
      - android-33 | ARM 64 v8a
      - android-33 | Google APIs ARM 64 v8a
      - android-33 | Google Play ARM 64 v8a
      - android-34 | Google APIs ARM 64 v8a
      - android-36 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2024.3 AI-243.22562.218.2431.13114758
  Xcode:
    version: 26.6/17F113
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.10
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.0.0
    wanted: 20.0.0
  react:
    installed: 19.2.0
    wanted: 19.2.0
  react-native:
    installed: 0.83.6
    wanted: 0.83.6
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: Not found
  newArchEnabled: false
Stacktrace or Logs
-
MANDATORY Reproducer

https://github.com/mariia-korzun/EmojiEndClipRepro

Screenshots and Videos

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le dépôt obligatoire EmojiEndClipRepro et son App.tsx, puis exécutez yarn install && yarn android sur un appareil Android affecté. Comparez les sections EMOJI et CONTROL ainsi que les suffixes contenant 🫨 ; le travail est terminé lorsque l’emoji final reste entièrement visible aux largeurs qui échouaient auparavant, sans régression dans les autres layouts ou séquences d’emoji.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, react-native
Domaine
mobile
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.