Repository navigation
[GPS] Add stop address editing - #90002
neil-marcellini merged 38 commits into
Conversation
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
Yeah, LGTM |
neil-marcellini
left a comment
There was a problem hiding this comment.
I reviewed most of this but not all of it. It's looking pretty good but I do think we should change some things based on my comments below. Also, please add unit tests.
|
Pls remember to re-request a review from me so I don't miss it 🙂 |
neil-marcellini
left a comment
There was a problem hiding this comment.
Looks really solid, thanks! I'm excited to see it launch.
| ...cursor.cursorPointer, | ||
| }, | ||
|
|
||
| editedStopSliderKnob: { |
There was a problem hiding this comment.
NAB: For consistency editedStop... => editStop...
|
🚧 neil-marcellini has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/neil-marcellini in version: 9.4.46-0 🚀
|
Help site changes required ✅This PR adds a user-facing Edit stop feature to the GPS Distance expense flow (pencil Edit icon → Edit stop screen with a slider to trim the trip, showing Total distance, then Save). That behavior wasn't documented, so I've drafted the help site update. Draft PR: #97379 — Docs updates for E/A#90002 Document GPS Edit stop trimming feature What changed in
All UI labels (Edit, Edit stop, Total distance, Save) were verified against the strings this PR adds in @GCyganek, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
Deploy Blocker #97488 was identified to be related to this PR. |
|
@GCyganek Trimmed route disappear after Resume and Stop the trip on iOS. It doesn't exist in prod. Could you please check and let ne know if we need create issue for this? Bug7221854_1785412624609.90002I.mp4 |
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.4.46-10 🚀
Bundle Size Analysis (Sentry): |
@izarutskaya I was not able to reproduce it on my iOS device and on simulator, is it reproducible for you or did it happen only once? The video doesn't tell me everything, if it's reproducible we should create a new issue |
|
Issue is not reproducible ScreenRecording_08-06-2026.19-32-22_1.MP4 |
|
Thank you for checking this and letting me know! |
Explanation of Change
Adds an "Edit stop" screen to the GPS distance flow. After stopping a trip, users can trim it to an earlier stop point via a slider; the trimmed distance/endpoint are stored in Onyx in
gpsDraftDetailsand sent asmodifiedDistanceto TrackExpense/CreateDistanceRequest. Also modifyinggpsCoordinatesprop to include edited stop coordinates andwaypointsto stop on the edited stop per backend request. Also refactors map markers frommarkerComponenttomarkerTypefor performance to make Slider UX smooth.Fixed Issues
$ #95060, #85802
PROPOSAL: N/A
Tests
Do this flow for SelfDM and workspace expense:
Save. Verify you return to the GPS screen, the displayed distance and end address reflect the trimmed stop.Saveagain. Verify the confirmation page shows the trimmed distance and route correctly.ResumeandStopafter some time, verify that the trim is reset and the trip is fully shown on the screen with the correct distance.Saveto go to confirmation pageCreate expenseOffline tests
QA Steps
Same as tests.
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
iOS: Native
Screen.Recording.2026-07-21.at.15.54.14.mov
Screen.Recording.2026-07-21.at.16.12.30.mov
Screen.Recording.2026-07-21.at.15.52.01.mov