Fix markdown cursor restore crash on IOU description focus - #96638
Fix markdown cursor restore crash on IOU description focus#96638x-dev90 wants to merge 10 commits into
Conversation
|
|
|
@suneox, Gentle bump. thanks. |
I'll take a look at this one today |
|
@x-dev90 Please feel free to open a PR directly in react-native-live-markdown. Expensify maintains that repo, so we can fix it upstream instead of using a patch. Please update the PR description by moving the Product flow under QA Steps. Additionally, please attach Screenshots/Videos for the other platform to cover all QA steps per the author checklist. |
|
@suneox thanks! Can you please test the change in the app? |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppaz_recorder_20260727_152501.1.mp4Android: mWeb Chromeaz_recorder_20260727_152501.mp4iOS: HybridAppCleanShot.2026-07-27.at.15.21.37.3.mp4iOS: mWeb SafariCleanShot.2026-07-27.at.15.23.39.4.mp4MacOS: Chrome / SafariCleanShot.2026-07-27.at.12.02.33.2.mp4 |
|
Everything works as expected with the patch applied. We'll remove it once the library PR gets merged |
|
@suneox The upstream PR in I updated this PR to use Could you please take a look when you get a chance? thanks |
|
@mountiny, please feel free to review the code. I’m investigating the failure action and running another round of testing. I’ll let you know once it’s complete. Thanks! |
mountiny
left a comment
There was a problem hiding this comment.
Looks good but you need to also update the pods
Explanation of Change
Fixes a web crash in the IOU Description step where live-markdown cursor restoration could call
Range.setStart/Range.setEndwith an offset larger than the actual DOM node length.Fixed Issues
$ #95347
PROPOSAL: #95347 (comment)
Tests
Forced browser repro
Script
abcdef.IndexSizeErroris thrown.Offline tests
Same as tests.
QA Steps
Product flow
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
Screen_Recording_20260725_122410_Chrome.mp4
iOS: Native
Screen.Recording.2026-07-27.at.10.54.47.AM.mov
iOS: mWeb Safari
Screen.Recording.2026-07-25.at.2.35.17.PM.mov
MacOS: Chrome / Safari
Screen.Recording.2026-07-22.at.5.07.12.PM.mov