Skip to content

Commit 841cfcb

Browse files
Improve screen flow
1 parent 84b3026 commit 841cfcb

File tree

6 files changed

+23
-11
lines changed

6 files changed

+23
-11
lines changed

src/components/inverters/InverterList.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ const InverterList: FC = () => {
2525

2626
return (
2727
a.every((x, i) => x.name === b[i].name) &&
28-
a.every((x, i) => x.serial === b[i].serial)
28+
a.every((x, i) => x.serial === b[i].serial) &&
29+
a.every((x, i) => x.order === b[i].order)
2930
);
3031
},
3132
);

src/views/navigation/screens/InverterGroup/InverterDataScreen.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { FC } from 'react';
2+
import { useEffect } from 'react';
23
import { useTranslation } from 'react-i18next';
34
import { Box } from 'react-native-flex-layout';
45
import { Appbar, List, useTheme } from 'react-native-paper';
@@ -42,12 +43,14 @@ const InverterDataScreen: FC<PropsWithNavigation> = ({ navigation, route }) => {
4243
| undefined,
4344
);
4445

45-
if (!inverter) {
46-
if (navigation.canGoBack()) {
46+
useEffect(() => {
47+
if (!inverter && navigation.canGoBack()) {
4748
log.warn('Inverter not found, going back', inverterSerial);
4849
navigation.goBack();
4950
}
51+
}, [inverter, inverterSerial, navigation]);
5052

53+
if (!inverter) {
5154
return null;
5255
}
5356

src/views/navigation/screens/InverterGroup/InverterDeviceInfoScreen.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,14 @@ const InverterDeviceInfoScreen: FC<PropsWithNavigation> = ({
7878
[inverterDeviceInfo],
7979
);
8080

81-
if (typeof inverterDeviceInfo === 'undefined') {
82-
if (navigation.canGoBack()) {
81+
useEffect(() => {
82+
if (typeof inverterDeviceInfo === 'undefined' && navigation.canGoBack()) {
8383
log.warn('Inverter not found, going back', inverterSerial);
8484
navigation.goBack();
8585
}
86+
}, [inverterDeviceInfo, inverterSerial, navigation]);
8687

88+
if (typeof inverterDeviceInfo === 'undefined') {
8789
return null;
8890
}
8991

src/views/navigation/screens/InverterGroup/InverterEventLogScreen.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ const InverterEventLogScreen: FC<PropsWithNavigation> = ({
4747
}
4848
}, [handleGetLog, navigation]);
4949

50-
if (!inverterSerial) {
51-
if (navigation.canGoBack()) {
50+
useEffect(() => {
51+
if (!inverterSerial && navigation.canGoBack()) {
5252
log.warn('Inverter not found, going back', inverterSerial);
5353
navigation.goBack();
5454
}
55+
}, [inverterSerial, navigation]);
5556

57+
if (!inverterSerial) {
5658
return null;
5759
}
5860

src/views/navigation/screens/InverterGroup/InverterGridProfileScreen.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,14 @@ const InverterGridProfileScreen: FC<PropsWithNavigation> = ({
7373
}
7474
}, [rawContent]);
7575

76-
if (!inverterSerial) {
77-
if (navigation.canGoBack()) {
76+
useEffect(() => {
77+
if (!inverterSerial && navigation.canGoBack()) {
7878
log.warn('Inverter not found, going back', inverterSerial);
7979
navigation.goBack();
8080
}
81+
}, [inverterSerial, navigation]);
8182

83+
if (!inverterSerial) {
8284
return null;
8385
}
8486

src/views/navigation/screens/InverterGroup/InverterInfoScreen.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,14 @@ const InverterInfoScreen: FC<PropsWithNavigation> = ({ navigation, route }) => {
203203

204204
const hasAuthConfigured = useHasAuthConfigured();
205205

206-
if (typeof inverter === 'undefined') {
207-
if (navigation.canGoBack()) {
206+
useEffect(() => {
207+
if (typeof inverter === 'undefined' && navigation.canGoBack()) {
208208
log.warn('Inverter not found, going back', inverterSerial);
209209
navigation.goBack();
210210
}
211+
}, [inverter, inverterSerial, navigation]);
211212

213+
if (typeof inverter === 'undefined') {
212214
return null;
213215
}
214216

0 commit comments

Comments
 (0)