Add Learn more link to Device Management page#91323
Conversation
Restore the "Learn more" link in the Device Management RHP description that was previously removed. The link now points to the published help doc at help.expensify.com. Updated all 10 language files with localized link text, and switched DeviceManagementPage from plain Text to RenderHTML to render the anchor tag. Co-authored-by: Andrew Rosiclair <arosiclair@users.noreply.github.com>
🦜 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 26d6fab6..a9283bc5 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -2215,7 +2215,7 @@ const translations: TranslationDeepObject<typeof en> = {
deviceManagementPage: {
title: 'Geräteverwaltung',
description:
- 'Verwalten Sie alle Geräte, auf denen Sie sich mit Ihrem Expensify-Konto angemeldet haben. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Weitere Informationen</a>',
+ 'Verwalten Sie alle Geräte, bei denen Sie sich mit Ihrem Expensify Konto angemeldet haben. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Erfahren Sie mehr</a>',
revoke: 'Widerrufen',
unknownDevice: 'Unbekanntes Gerät',
},
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 51da362c..802800cb 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -2213,7 +2213,8 @@ const translations: TranslationDeepObject<typeof en> = {
},
deviceManagementPage: {
title: 'Gestione dei dispositivi',
- description: `Gestisci tutti i dispositivi su cui hai effettuato l'accesso con il tuo account Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Scopri di più</a>`,
+ description:
+ 'Gestisci tutti i dispositivi su cui hai effettuato l’accesso con il tuo account Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Scopri di più</a>',
revoke: 'Revoca',
unknownDevice: 'Dispositivo Sconosciuto',
},
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index d2a8ec8a..b0d9262e 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -2193,7 +2193,7 @@ const translations: TranslationDeepObject<typeof en> = {
deviceManagementPage: {
title: 'デバイス管理',
description:
- 'Expensifyアカウントでログインしたすべてのデバイスを管理します。<a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">詳細はこちら</a>',
+ 'Expensify アカウントでログインしているすべてのデバイスを管理できます。<a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">詳しくはこちら</a>',
revoke: '取り消す',
unknownDevice: '不明なデバイス',
},
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 55a85a08..de528bc2 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -2209,7 +2209,7 @@ const translations: TranslationDeepObject<typeof en> = {
deviceManagementPage: {
title: 'Apparaatbeheer',
description:
- 'Beheer alle apparaten waarop u bent ingelogd met uw Expensify-account. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Meer informatie</a>',
+ 'Beheer alle apparaten waarop je bent ingelogd met je Expensify-account. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Meer informatie</a>',
revoke: 'Intrekken',
unknownDevice: 'Onbekend Apparaat',
},
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index b7c83b68..671e125a 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -2209,7 +2209,7 @@ const translations: TranslationDeepObject<typeof en> = {
deviceManagementPage: {
title: 'Zarządzanie urządzeniami',
description:
- 'Zarządzaj wszystkimi urządzeniami, na których zalogowałeś się za pomocą swojego konta Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Dowiedz się więcej</a>',
+ 'Zarządzaj wszystkimi urządzeniami, na które zalogowałeś(-aś) się za pomocą konta Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Dowiedz się więcej</a>',
revoke: 'Cofnąć',
unknownDevice: 'Nieznane Urządzenie',
},
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index bfbf9613..349af796 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -2206,7 +2206,7 @@ const translations: TranslationDeepObject<typeof en> = {
deviceManagementPage: {
title: 'Gerenciamento de dispositivos',
description:
- 'Gerencie todos os dispositivos nos quais você fez login com sua conta do Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Saiba mais</a>',
+ 'Gerencie todos os dispositivos nos quais você fez login com sua conta Expensify. <a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">Saiba mais</a>',
revoke: 'Revogar',
unknownDevice: 'Dispositivo Desconhecido',
},
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 1e95fd62..a6368929 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -2150,7 +2150,7 @@ const translations: TranslationDeepObject<typeof en> = {
},
deviceManagementPage: {
title: '设备管理',
- description: '管理您使用 Expensify 账户登录过的所有设备。<a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">了解更多</a>',
+ description: '管理所有已使用你的 Expensify 账户登录的设备。<a href="https://help.expensify.com/articles/new-expensify/settings/Manage-Logged-in-Devices">了解详情</a>',
revoke: '撤销',
unknownDevice: '未知设备',
},
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@MelvinBot can you apply the diff in this comment to update the translations: #91323 (comment) |
Co-authored-by: Andrew Rosiclair <arosiclair@users.noreply.github.com>
|
Applied the translation diff from the Polyglot Parrot comment — updated deviceManagementPage descriptions in de, it, ja, nl, pl, pt-BR, and zh-hans. |
|
🚧 @arosiclair has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
@MelvinBot this approach doesn't display the description text correctly on Android. Implement the fix in this comment by using the |
The description text was rendered as a sibling View to FlashList, which caused it to be overlapped by FlashList's internal absolute positioning on Android. Moving it into ListHeaderComponent ensures it renders inside the FlashList scroll content. Co-authored-by: Andrew Rosiclair <arosiclair@users.noreply.github.com>
|
Moved the description from a sibling |
|
🚧 @arosiclair has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
|
@dukenv0307 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
React Compiler handles memoization automatically, making the manual useMemo wrapper unnecessary. Co-authored-by: Andrew Rosiclair <arosiclair@users.noreply.github.com>
|
@arosiclair Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
All checks on this PR are passing. The only "failure" shown is |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-05-22.at.16.00.38.movAndroid: mWeb ChromeScreen.Recording.2026-05-22.at.15.50.28.moviOS: HybridAppScreen.Recording.2026-05-22.at.15.57.59.moviOS: mWeb SafariScreen.Recording.2026-05-22.at.15.50.08.movMacOS: Chrome / SafariScreen.Recording.2026-05-22.at.15.48.55.mov |
|
🚧 @arosiclair 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. |
Explanation of Change
Restores the "Learn more" link in the Device Management RHP that was previously removed in commit
416b24e. The description text in all 10 language files now includes an<a>tag pointing to the published help doc.DeviceManagementPage.tsxis updated to useRenderHTMLinstead of plainTextso the anchor tag renders as a clickable link.Fixed Issues
$ #89558
Tests
Offline tests
None
QA Steps
Same as Tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand 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
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
Screen.Recording.2026-05-21.at.12.39.00.PM.mov