react / react/react-native

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

Đang mở
#57,995 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Needs: Author Feedback Platform: Android Type: Unsupported Version
Ngôn ngữ chính
C++
Star
127k
Fork
25.3k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
4

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với repository bắt buộc EmojiEndClipRepro và App.tsx của nó, sau đó chạy yarn install && yarn android trên một thiết bị Android bị ảnh hưởng. So sánh các section EMOJI và CONTROL cùng các suffix chứa 🫨; được xem là hoàn tất khi emoji ở cuối vẫn hiển thị đầy đủ ở các độ rộng trước đây bị lỗi, mà không làm phát sinh regression ở các layout hoặc chuỗi emoji khác.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
android, react-native
Lĩnh vực
mobile
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.