Add GPS tab to the Distance Request page#77242
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❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
@dukenv0307 @AndrewGable ESLint errors come from this PR where |
|
@trjExpensify @blimpich please ignore, Andrew and @dukenv0307 will review, hopefully starting from the next PR they will be automatically assigned to PRs for the GPS feature |
|
Switched Andrew on for Ben, and assigned Duke as well. Product will still get assigned for a review, so I can do that here. 👍 |
trjExpensify
left a comment
There was a problem hiding this comment.
Core PR for a whatsnext project 👍
| transactionID: string; | ||
| reportID: string; | ||
| backToReport?: string; | ||
| reportActionID?: string; |
There was a problem hiding this comment.
NAB: We don't use reportActionID anywhere, but I think we can keep it since it's added in other similar screens.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-12-16.at.22.46.36.movAndroid: mWeb ChromeScreen.Recording.2025-12-16.at.22.44.43.moviOS: HybridAppScreen.Recording.2025-12-16.at.22.47.42.moviOS: mWeb SafariScreen.Recording.2025-12-16.at.22.42.37.movMacOS: Chrome / SafariScreen.Recording.2025-12-16.at.22.41.45.mov |
|
🎯 @dukenv0307, thanks for reviewing and testing this PR! 🎉 An E/App issue has been created to issue payment here: #77783. |
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/de.ts b/src/languages/de.ts
index ac6c8180..b9a8e12a 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -1029,15 +1029,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Abonnement',
domains: 'Domänen',
},
- tabSelector: {
- chat: 'Chat',
- room: 'Raum',
- distance: 'Entfernung',
- manual: 'Manuell',
- scan: 'Scannen',
- map: 'Karte',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Chat', room: 'Raum', distance: 'Entfernung', manual: 'Manuell', scan: 'Scannen', map: 'Karte', gps: 'GPS'},
spreadsheet: {
upload: 'Eine Tabellenkalkulation hochladen',
import: 'Tabellenkalkulation importieren',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 7a8dde0b..09abd0a5 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -1031,15 +1031,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Abonnement',
domains: 'Domaines',
},
- tabSelector: {
- chat: 'Discussion',
- room: 'Salle',
- distance: 'Distance',
- manual: 'Manuel',
- scan: 'Scanner',
- map: 'Carte',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Discussion', room: 'Salle', distance: 'Distance', manual: 'Manuel', scan: 'Scanner', map: 'Carte', gps: 'GPS'},
spreadsheet: {
upload: 'Téléverser une feuille de calcul',
import: 'Importer une feuille de calcul',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 66b3d8fb..f5f71e07 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -1027,15 +1027,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Abbonamento',
domains: 'Domini',
},
- tabSelector: {
- chat: 'Chat',
- room: 'Stanza',
- distance: 'Distanza',
- manual: 'Manuale',
- scan: 'Scannerizza',
- map: 'Mappa',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Chat', room: 'Stanza', distance: 'Distanza', manual: 'Manuale', scan: 'Scannerizza', map: 'Mappa', gps: 'GPS'},
spreadsheet: {
upload: 'Carica un foglio di calcolo',
import: 'Importa foglio di calcolo',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 68701fb9..d4d10c73 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -1027,15 +1027,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'サブスクリプション',
domains: 'ドメイン',
},
- tabSelector: {
- chat: 'チャット',
- room: '部屋',
- distance: '距離',
- manual: '手動',
- scan: 'スキャン',
- map: '地図',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'チャット', room: '部屋', distance: '距離', manual: '手動', scan: 'スキャン', map: '地図', gps: 'GPS'},
spreadsheet: {
upload: 'スプレッドシートをアップロード',
import: 'スプレッドシートをインポート',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 2834c9b6..18d18e45 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -1027,15 +1027,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Abonnement',
domains: 'Domeinen',
},
- tabSelector: {
- chat: 'Chat',
- room: 'Kamer',
- distance: 'Afstand',
- manual: 'Handmatig',
- scan: 'Scannen',
- map: 'Kaart',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Chat', room: 'Kamer', distance: 'Afstand', manual: 'Handmatig', scan: 'Scannen', map: 'Kaart', gps: 'GPS'},
spreadsheet: {
upload: 'Een spreadsheet uploaden',
import: 'Spreadsheet importeren',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 194e6cf6..35d45882 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -1027,15 +1027,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Subskrypcja',
domains: 'Domeny',
},
- tabSelector: {
- chat: 'Czat',
- room: 'Pokój',
- distance: 'Dystans',
- manual: 'Ręczny',
- scan: 'Skanuj',
- map: 'Mapa',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Czat', room: 'Pokój', distance: 'Dystans', manual: 'Ręczny', scan: 'Skanuj', map: 'Mapa', gps: 'GPS'},
spreadsheet: {
upload: 'Prześlij arkusz kalkulacyjny',
import: 'Importuj arkusz kalkulacyjny',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 03e7f21e..294fc237 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -1026,15 +1026,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: 'Assinatura',
domains: 'Domínios',
},
- tabSelector: {
- chat: 'Chat',
- room: 'Sala',
- distance: 'Distância',
- manual: 'Manual',
- scan: 'Escanear',
- map: 'Mapa',
- gps: 'GPS',
- },
+ tabSelector: {chat: 'Chat', room: 'Sala', distance: 'Distância', manual: 'Manual', scan: 'Escanear', map: 'Mapa', gps: 'GPS'},
spreadsheet: {
upload: 'Enviar uma planilha',
import: 'Importar planilha',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 5b92037c..38de4ec8 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -1015,15 +1015,7 @@ const translations: TranslationDeepObject<typeof en> = {
subscription: '订阅',
domains: '域名',
},
- tabSelector: {
- chat: '聊天',
- room: '房间',
- distance: '距离',
- manual: '手动',
- scan: '扫描',
- map: '地图',
- gps: 'GPS',
- },
+ tabSelector: {chat: '聊天', room: '房间', distance: '距离', manual: '手动', scan: '扫描', map: '地图', gps: 'GPS'},
spreadsheet: {
upload: '上传电子表格',
import: '导入电子表格',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
This comment was marked as outdated.
This comment was marked as outdated.
|
Not an emergency, the failing test was OK-ed here: https://expensify.slack.com/archives/C08CZDJFJ77/p1765979872458649?thread_ts=1765912376.034269&cid=C08CZDJFJ77 |
|
✋ 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/AndrewGable in version: 9.2.82-0 🚀
|
|
🚀 Deployed to staging by https://github.com/AndrewGable in version: 9.2.82-0 🚀
|
|
🚀 Deployed to staging by https://github.com/AndrewGable in version: 9.2.82-0 🚀
|
|
🚀 Deployed to staging by https://github.com/AndrewGable in version: 9.2.84-0 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.84-8 🚀
|
Explanation of Change
Adding GPS tab to the Distance Request screen. All the changes needed to display the tab and for the routing to work. Content of the GPS screen will be added in a follow-up PR
ESLint errors come from this PR where
isTrackExpenseReportwas deprecated, but from what I see they're planning on migrating from the old function to the new one soon while the old one is still working fine, so I'm leaving it as is here.Fixed Issues
$ #77212
Tests
Mobile native:
Web:
Offline tests
QA Steps
Same as
TestsPR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, 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.ScrollViewcomponent to make it scrollable when more elements are added to the page.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
Screen.Recording.2025-12-16.at.12.01.50.mov
Android: mWeb Chrome
no GPS tab:
iOS: Native
Screen.Recording.2025-12-16.at.12.45.23.mov
iOS: mWeb Safari
no GPS tab:
MacOS: Chrome / Safari
no GPS tab on the web: