App: [HOLD for upstream] [$2000] Android - Chat - back-to-back bold words don't always render as bold
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Issue found when executing PR https://github.com/Expensify/App/pull/15501
Action Performed:
Precondition: Use the following sequence of b characters for completing each test:
*b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b**b*
- Paste the b characters into the composer and remove any surrounding backticks and spaces.
- Confirm that the comment counter displays as 15012, and that the length is exceeded.
- Remove one b sequence from the comment. The comment should now be sendable.
- Send the comment and confirm that the delivered message consists only of b characters formatted in bold.
Expected Result:
All 100% of b characters formatted in bold
Actual Result:
50% of b characters formatted in bold
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
- Android / native
- Android / Chrome
- iOS / native
- iOS / Safari
- MacOS / Chrome / Safari
- MacOS / Desktop
Version Number: 1.2.78.0
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~0199575fa523903823
- Upwork Job ID: 1635048377825824768
- Last Price Increase: 2023-03-19
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 86 (57 by maintainers)
The fix should land in React Native 0.73
@sonialiap I’ve gone ahead and paid this. So we just need to keep it open to track that the upstream PR gets incorporated. I’ll just leave it assigned to me for that.
@puneetlath Are we fine with the changes appearing on 0.72.x, or whatever comes from applying the solution only on top of
react-nativemain branch? I’ve seen some issues put on hold on 0.72, so I guess we’ll be rebasing the fork on 0.72?To be honest, I’m not really sure what we’re forking on.
Our guy is back, I bumped the upstream thread.
As per their status on the GitHub profile, the upstream PR reviewer is still on vacation. But, intuitively, he should be back in the near future so we’ll be ready to take the next steps in the upstream.
I got some feedback on a solution idea from the React Native engineer, but a very early one. In general, the situation looks quite promising. The React Native team is thinking forward; the solution would have to be applied to both legacy Paper renderer and the new Fabric renderer. But that’s doable. I’m not sure yet about the possibility to have a fix back-ported to the 0.71 branch, but that doesn’t sound unrealistic (yet).
Summing up, the wheel keeps turning and soon we’ll know more facts.
In the context of this issue, this will help make an informed decision on whether to:
I’m still hoping that the first option can be made realistic.
@puneetlath someone is already started a thread and fixes for similar issues https://github.com/react-native-community/discussions-and-proposals/issues/495#issuecomment-1363027413 - one note to keep in mind, that it’s not about only bold text, it’s about all possible styling which can be applied from markdown to android Text component. And also to make it’s working (if someone will provide a proper solution) - it will be needed to fork rn-render-html and change RN to expensify fork Potential code fixes: https://github.com/facebook/react-native/pull/35949, https://github.com/facebook/react-native/pull/35704
@narefyev91 @cubuspl42 our ideal approach is always to fix the issue at its root. So if the problem is in RN or in RN-render-html then we should ideally fix there, rather than creating a workaround in our own codebase.
The way we do this is that we submit a PR to the upstream repo and simultaneously either fork or patch it in our repo (we already maintain a fork of RN core).
Until there is an accepted proposal from anyone, your work can be rewarded. We assign callstack often to older issues which do not get many proposals quickly which often means they require more investigation. Sorry for confusion.