Skip to content

Commit 0029614

Browse files
authored
Merge pull request #52703 from software-mansion-labs/war-in/distinguish-between-staging-prod-env-upgrade-modal
[No QA] Update force upgrade modal
2 parents 00a81dc + ef4f0a2 commit 0029614

File tree

7 files changed

+31
-8
lines changed

7 files changed

+31
-8
lines changed

src/languages/en.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,9 @@ const translations = {
11731173
updateRequiredView: {
11741174
updateRequired: 'Update required',
11751175
pleaseInstall: 'Please update to the latest version of New Expensify',
1176+
pleaseInstallExpensifyClassic: 'Please install the latest version of Expensify',
11761177
toGetLatestChanges: 'For mobile or desktop, download and install the latest version. For web, refresh your browser.',
1178+
newAppNotAvailable: 'The New Expensify app is no longer available.',
11771179
},
11781180
initialSettingsPage: {
11791181
about: 'About',

src/languages/es.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,9 @@ const translations = {
11721172
updateRequiredView: {
11731173
updateRequired: 'Actualización requerida',
11741174
pleaseInstall: 'Por favor, actualiza a la última versión de New Expensify',
1175+
pleaseInstallExpensifyClassic: 'Por favor, instala la última versión de Expensify',
11751176
toGetLatestChanges: 'Para móvil o escritorio, descarga e instala la última versión. Para la web, actualiza tu navegador.',
1177+
newAppNotAvailable: 'La App New Expensify ya no está disponible.',
11761178
},
11771179
initialSettingsPage: {
11781180
about: 'Acerca de',
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import {Linking, NativeModules} from 'react-native';
22
import CONST from '@src/CONST';
33

4-
export default function updateApp() {
4+
export default function updateApp(isProduction: boolean) {
5+
if (isProduction) {
6+
Linking.openURL(CONST.APP_DOWNLOAD_LINKS.OLD_DOT_ANDROID);
7+
return;
8+
}
59
Linking.openURL(NativeModules.HybridAppModule ? CONST.APP_DOWNLOAD_LINKS.OLD_DOT_ANDROID : CONST.APP_DOWNLOAD_LINKS.ANDROID);
610
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import ELECTRON_EVENTS from '@desktop/ELECTRON_EVENTS';
22

3-
export default function updateApp() {
3+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
4+
export default function updateApp(isProduction: boolean) {
45
window.electron.send(ELECTRON_EVENTS.SILENT_UPDATE);
56
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import {Linking, NativeModules} from 'react-native';
22
import CONST from '@src/CONST';
33

4-
export default function updateApp() {
4+
export default function updateApp(isProduction: boolean) {
5+
if (isProduction) {
6+
Linking.openURL(CONST.APP_DOWNLOAD_LINKS.OLD_DOT_IOS);
7+
return;
8+
}
59
Linking.openURL(NativeModules.HybridAppModule ? CONST.APP_DOWNLOAD_LINKS.OLD_DOT_IOS : CONST.APP_DOWNLOAD_LINKS.IOS);
610
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/**
22
* On web or mWeb we can simply refresh the page and the user should have the new version of the app downloaded.
33
*/
4-
export default function updateApp() {
4+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
5+
export default function updateApp(isProduction: boolean) {
56
window.location.reload();
67
}

src/pages/ErrorPage/UpdateRequiredView.tsx

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import React from 'react';
2-
import {View} from 'react-native';
2+
import {NativeModules, View} from 'react-native';
33
import Button from '@components/Button';
44
import Header from '@components/Header';
55
import HeaderGap from '@components/HeaderGap';
66
import Lottie from '@components/Lottie';
77
import LottieAnimations from '@components/LottieAnimations';
88
import Text from '@components/Text';
9+
import useEnvironment from '@hooks/useEnvironment';
910
import useLocalize from '@hooks/useLocalize';
1011
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1112
import useSafeAreaInsets from '@hooks/useSafeAreaInsets';
@@ -19,6 +20,10 @@ function UpdateRequiredView() {
1920
const StyleUtils = useStyleUtils();
2021
const {translate} = useLocalize();
2122
const {shouldUseNarrowLayout} = useResponsiveLayout();
23+
24+
const {isProduction} = useEnvironment();
25+
const isStandaloneNewAppProduction = isProduction && !NativeModules.HybridAppModule;
26+
2227
return (
2328
<View style={[styles.appBG, styles.h100, StyleUtils.getSafeAreaPadding(insets)]}>
2429
<HeaderGap />
@@ -37,17 +42,21 @@ function UpdateRequiredView() {
3742
<View style={[styles.ph5, styles.alignItemsCenter, styles.mt5]}>
3843
<View style={styles.updateRequiredViewTextContainer}>
3944
<View style={[styles.mb3]}>
40-
<Text style={[styles.newKansasLarge, styles.textAlignCenter]}>{translate('updateRequiredView.pleaseInstall')}</Text>
45+
<Text style={[styles.newKansasLarge, styles.textAlignCenter]}>
46+
{isStandaloneNewAppProduction ? translate('updateRequiredView.pleaseInstallExpensifyClassic') : translate('updateRequiredView.pleaseInstall')}
47+
</Text>
4148
</View>
4249
<View style={styles.mb5}>
43-
<Text style={[styles.textAlignCenter, styles.textSupporting]}>{translate('updateRequiredView.toGetLatestChanges')}</Text>
50+
<Text style={[styles.textAlignCenter, styles.textSupporting]}>
51+
{isStandaloneNewAppProduction ? translate('updateRequiredView.newAppNotAvailable') : translate('updateRequiredView.toGetLatestChanges')}
52+
</Text>
4453
</View>
4554
</View>
4655
</View>
4756
<Button
4857
success
4958
large
50-
onPress={() => AppUpdate.updateApp()}
59+
onPress={() => AppUpdate.updateApp(isProduction)}
5160
text={translate('common.update')}
5261
style={styles.updateRequiredViewTextContainer}
5362
/>

0 commit comments

Comments
 (0)