fix(up-wip): register stucked loading

This commit is contained in:
devthejo 2025-10-02 19:29:07 +02:00
parent 9ea614907e
commit c5ccfa8d08
No known key found for this signature in database
GPG key ID: 00CCA7A92B1D5351
3 changed files with 62 additions and 12 deletions

View file

@ -1,6 +1,6 @@
import React, { useCallback, useState, useEffect } from "react";
import { View } from "react-native";
import { View, Alert } from "react-native";
import LittleLoader from "~/components/LittleLoader";
import { Button } from "react-native-paper";
import { MaterialCommunityIcons } from "@expo/vector-icons";
@ -70,12 +70,20 @@ export default function AccountManagementModalConnect({
};
}, [isLoading, loginRequest]);
const connectUsingPhoneNumber = () => {
const connectUsingPhoneNumber = async () => {
setIsLoading(true);
sendAuthSMS({
smsType: "C",
body: "Se connecter sur Alerte-Secours:\nCode: [CODE]\n💙", // must don't exceed 160 chars including replaced [CODE]
});
try {
await sendAuthSMS({
smsType: "C",
body: "Se connecter sur Alerte-Secours:\nCode: [CODE]\n💙", // must don't exceed 160 chars including replaced [CODE]
});
} catch (e) {
setIsLoading(false);
Alert.alert(
"Échec de louverture des SMS",
"Impossible douvrir lapplication SMS. Réessayez.",
);
}
};
const smsDisclaimerModalStatePair = useState({ visible: false });

View file

@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from "react";
import { View } from "react-native";
import { View, Alert } from "react-native";
import { MaterialCommunityIcons } from "@expo/vector-icons";
@ -41,10 +41,18 @@ export default function PhoneNumbersView({ data, waitingSmsType }) {
const registerPhoneNumber = useCallback(async () => {
setIsLoading(true);
sendAuthSMS({
smsType: "R",
body: "S'enregistrer sur Alerte-Secours:\nCode: [CODE]\n💙", // must don't exceed 160 chars including replaced [CODE]
});
try {
await sendAuthSMS({
smsType: "R",
body: "S'enregistrer sur Alerte-Secours:\nCode: [CODE]\n💙", // must don't exceed 160 chars including replaced [CODE]
});
} catch (e) {
setIsLoading(false);
Alert.alert(
"Échec de louverture des SMS",
"Impossible douvrir lapplication SMS. Réessayez.",
);
}
}, [sendAuthSMS, setIsLoading]);
// Clear loading state after 3 minutes

View file

@ -1,6 +1,6 @@
import React, { useEffect } from "react";
import { ScrollView, View } from "react-native";
import { ScrollView, View, AppState } from "react-native";
import Loader from "~/components/Loader";
import { useSubscription } from "@apollo/client";
@ -12,6 +12,7 @@ import { createLogger } from "~/lib/logger";
import { FEATURE_SCOPES } from "~/lib/logger/scopes";
import withConnectivity from "~/hoc/withConnectivity";
import { useFocusEffect } from "@react-navigation/native";
import Form from "./Form";
@ -37,6 +38,39 @@ export default withConnectivity(function Profile({ navigation, route }) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [userId]);
useFocusEffect(
React.useCallback(() => {
restart();
}, [restart]),
);
useEffect(() => {
const sub = AppState.addEventListener("change", (state) => {
if (state === "active") {
restart();
}
});
return () => {
sub?.remove?.();
};
}, [restart]);
useEffect(() => {
if (
route.params?.waitingSmsType &&
data?.selectOneUser?.oneUserLoginRequest
) {
navigation.setParams({
waitingSmsType: undefined,
openAccountModal: true,
});
}
}, [
route.params?.waitingSmsType,
data?.selectOneUser?.oneUserLoginRequest,
navigation,
]);
if (loading || !data?.selectOneUser) {
return <Loader />;
}