[No-QA] [Desktop App Deprecation] Add "App Retired" page#77045
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 |
|
@dubielzyk-expensify @hoangzinh One of you needs to 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] |
|
Can someone please run the translation workflow? |
🦜 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 c060fd86..4558ce0c 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -7887,6 +7887,11 @@ Hier ist ein *Testbeleg*, um dir zu zeigen, wie es funktioniert:`,
setMetadataGenericError: 'SAML-Metadaten konnten nicht festgelegt werden',
},
},
+ desktopAppRetiredPage: {
+ title: 'Desktop-App wurde eingestellt',
+ body: 'Die neue Expensify Desktop-App für Mac wurde eingestellt. Bitte verwenden Sie künftig die Web-App, um auf Ihr Konto zuzugreifen.',
+ goToWeb: 'Zur Web-App gehen',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 43051c0b..acf04e23 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -7895,6 +7895,11 @@ Voici un *reçu test* pour vous montrer comment cela fonctionne :`,
setMetadataGenericError: 'Impossible de définir les métadonnées SAML',
},
},
+ desktopAppRetiredPage: {
+ title: 'L’application de bureau a été retirée',
+ body: 'La nouvelle application de bureau Expensify pour Mac a été retirée. À l’avenir, veuillez utiliser l’application web pour accéder à votre compte.',
+ goToWeb: 'Aller sur le web',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 0a9802c1..56447e22 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -7868,6 +7868,11 @@ Ecco una *ricevuta di prova* per mostrarti come funziona:`,
setMetadataGenericError: 'Impossibile impostare i metadati SAML',
},
},
+ desktopAppRetiredPage: {
+ title: "L'app desktop è stata dismessa",
+ body: 'La nuova app desktop Expensify per Mac è stata ritirata. D’ora in avanti, usa l’app web per accedere al tuo account.',
+ goToWeb: 'Vai al sito web',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 37f6e7dd..5b6b3124 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -7815,6 +7815,11 @@ Expensify の使い方をお見せするための*テストレシート*がこ
setMetadataGenericError: 'SAMLメタデータを設定できませんでした',
},
},
+ desktopAppRetiredPage: {
+ title: 'デスクトップアプリは廃止されました',
+ body: 'New Expensify の Mac デスクトップアプリは廃止されました。今後は、アカウントへアクセスする際に Web アプリをご利用ください。',
+ goToWeb: 'Web を開く',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 69b7548e..700e277f 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -7853,6 +7853,11 @@ Hier is een *testbon* om je te laten zien hoe het werkt:`,
setMetadataGenericError: 'Kon SAML-metagegevens niet instellen',
},
},
+ desktopAppRetiredPage: {
+ title: 'Desktop-app is buiten gebruik gesteld',
+ body: 'De nieuwe Expensify Mac-desktopapp is buiten gebruik gesteld. Gebruik voortaan de webapp om toegang te krijgen tot je account.',
+ goToWeb: 'Ga naar web',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 34db7868..ea024d36 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -960,7 +960,7 @@ const translations: TranslationDeepObject<typeof en> = {
`Ten czat jest przeznaczony na wszystko, co dotyczy <strong><a class="no-style-link" href="${reportDetailsLink}">${reportName}</a></strong>.`,
beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) =>
`Ten czat służy do faktur między <strong>${invoicePayer}</strong> a <strong>${invoiceReceiver}</strong>. Użyj przycisku +, aby wysłać fakturę.`,
- beginningOfChatHistory: 'Ten czat jest z',
+ beginningOfChatHistory: 'Ta rozmowa jest z',
beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) =>
`Tutaj <strong>${submitterDisplayName}</strong> będzie przesyłać wydatki do <strong>${workspaceName}</strong>. Wystarczy użyć przycisku +.`,
beginningOfChatHistorySelfDM: 'To jest Twoja osobista przestrzeń. Używaj jej do notatek, zadań, szkiców i przypomnień.',
@@ -7843,6 +7843,11 @@ Oto *paragon testowy*, który pokazuje, jak to działa:`,
setMetadataGenericError: 'Nie można ustawić metadanych SAML',
},
},
+ desktopAppRetiredPage: {
+ title: 'Aplikacja desktopowa została wycofana',
+ body: 'Nowa aplikacja desktopowa Expensify na Maca została wycofana. Od teraz korzystaj z aplikacji webowej, aby uzyskać dostęp do swojego konta.',
+ goToWeb: 'Przejdź do sieci',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 6c950ac7..561381e6 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -7846,6 +7846,11 @@ Aqui está um *recibo de teste* para mostrar como funciona:`,
setMetadataGenericError: 'Não foi possível definir os metadados SAML',
},
},
+ desktopAppRetiredPage: {
+ title: 'O app para desktop foi descontinuado',
+ body: 'O novo aplicativo desktop Expensify para Mac foi descontinuado. De agora em diante, use o aplicativo web para acessar sua conta.',
+ goToWeb: 'Ir para a web',
+ },
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index ab824ef5..bed292b6 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -7693,6 +7693,7 @@ ${reportName}
setMetadataGenericError: '无法设置 SAML MetaData',
},
},
+ desktopAppRetiredPage: {title: '桌面应用程序已停用', body: '新的 Expensify Mac 桌面应用已停用。今后,请使用网页版应用访问您的账户。', goToWeb: '前往网页'},
};
// IMPORTANT: This line is manually replaced in generate translation files by scripts/generateTranslations.ts,
// so if you change it here, please update it there as well.
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
@allroundexperts I'm unsure if this is a bug, but I can still use the desktop app when I open Chrome DevTools and navigate to a report. Screen.Recording.2025-12-09.at.22.16.35.mov |
Hm... I don't think this is a bug @hoangzinh. Like it doesn't make sense for a user to do that. |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Good from a product perspective 👍
@allroundexperts, okay. Can you fix failing checks? |
|
Waiting for someone to run the translation workflow. Will see if it fails after that. @puneetlath Maybe can you help? |
|
It seems result is here #77045 (comment) |
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.
|
|
@allroundexperts is PR ready for next review? |
|
Yes, the TS checks seem to fail on main as well. |
|
Can you try merging the latest main to see if the React compiler check passes? |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-12-11.at.17.30.59.movAndroid: mWeb ChromeScreen.Recording.2025-12-11.at.17.18.57.moviOS: HybridAppScreen.Recording.2025-12-11.at.17.15.58.ios.moviOS: mWeb SafariScreen.Recording.2025-12-11.at.17.14.20.ios.safari.movMacOS: Chrome / SafariScreen.Recording.2025-12-11.at.16.04.53.movMacOS: DesktopScreen.Recording.2025-12-11.at.16.08.13.mov |
|
@allroundexperts can you also add recording for other platforms to ensure they still work well? TY |
|
Hi @dubielzyk-expensify, do screenshots look good to you? |
|
@dubielzyk-expensify Do you mean on a smaller screen? We only display this page on desktop. Screen.Recording.2025-12-11.at.16.08.13.mov |
|
Yeah I meant shrunken down. Looks great from me. I'll let others do the code review |
|
Thanks @dubielzyk-expensify. @allroundexperts can you do this please? #77045 (comment) |
|
@hoangzinh Updated! |
|
@allroundexperts looks like you have conflicts. @roryabraham you good with the changes? |
|
@roryabraham Handled your comments.
|
|
✋ 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/roryabraham in version: 9.2.85-0 🚀
|
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.2.85-7 🚀
|


Explanation of Change
Adds a "App Retired" page to the desktop app and shows it by default.
Fixed Issues
$ #75198
PROPOSAL: N/A
Tests
App Retiredpage shows up.Offline tests
N/A
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
N/A
PR 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-11.at.6.09.13.PM.mov
Android: mWeb Chrome
Screen.Recording.2025-12-11.at.6.06.04.PM.mov
iOS: Native
Screen.Recording.2025-12-11.at.6.04.07.PM.mov
iOS: mWeb Safari
Screen.Recording.2025-12-11.at.6.01.27.PM.mov
MacOS: Chrome / Safari
Screen.Recording.2025-12-11.at.5.54.06.PM.mov