fix: connect loader
This commit is contained in:
parent
52fc3bc24b
commit
cccb49134f
6 changed files with 65 additions and 15 deletions
|
|
@ -20,6 +20,7 @@ export default function AccountManagement({
|
|||
profileData,
|
||||
openAccountModal,
|
||||
waitingSmsType,
|
||||
clearAuthWaitParams,
|
||||
}) {
|
||||
const { colors, custom } = useTheme();
|
||||
const isConnected = isConnectedProfile(profileData);
|
||||
|
|
@ -136,6 +137,7 @@ export default function AccountManagement({
|
|||
modalState={modalState}
|
||||
profileData={profileData}
|
||||
waitingSmsType={waitingSmsType}
|
||||
clearAuthWaitParams={clearAuthWaitParams}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ export default function AccountManagementModal({
|
|||
modalState,
|
||||
profileData,
|
||||
waitingSmsType,
|
||||
clearAuthWaitParams,
|
||||
}) {
|
||||
const styles = useStyles();
|
||||
const [modal, setModal] = modalState;
|
||||
|
|
@ -38,6 +39,7 @@ export default function AccountManagementModal({
|
|||
authMethod={authMethod}
|
||||
setAuthMethod={setAuthMethod}
|
||||
waitingSmsType={waitingSmsType}
|
||||
clearAuthWaitParams={clearAuthWaitParams}
|
||||
/>
|
||||
)}
|
||||
{visible && component === "destroy" && (
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ export default function AccountManagementModalConnect({
|
|||
authMethod,
|
||||
setAuthMethod,
|
||||
waitingSmsType,
|
||||
clearAuthWaitParams,
|
||||
}) {
|
||||
const styles = useStyles();
|
||||
const { colors, custom } = useTheme();
|
||||
|
|
@ -92,20 +93,39 @@ export default function AccountManagementModalConnect({
|
|||
const [loginConfirmRequest] = useMutation(LOGIN_CONFIRM_MUTATION);
|
||||
|
||||
const confirmLoginRequest = useCallback(async () => {
|
||||
const deviceUuid = await getDeviceUuid();
|
||||
const {
|
||||
data: {
|
||||
doAuthLoginConfimLoginRequest: { authTokenJwt },
|
||||
},
|
||||
} = await loginConfirmRequest({
|
||||
variables: { loginRequestId: loginRequest.id, deviceUuid },
|
||||
});
|
||||
await authActions.confirmLoginRequest({ authTokenJwt, isConnected });
|
||||
}, [loginConfirmRequest, loginRequest?.id, isConnected]);
|
||||
try {
|
||||
const deviceUuid = await getDeviceUuid();
|
||||
const {
|
||||
data: {
|
||||
doAuthLoginConfimLoginRequest: { authTokenJwt },
|
||||
},
|
||||
} = await loginConfirmRequest({
|
||||
variables: { loginRequestId: loginRequest.id, deviceUuid },
|
||||
});
|
||||
await authActions.confirmLoginRequest({ authTokenJwt, isConnected });
|
||||
setIsLoading(false);
|
||||
clearAuthWaitParams?.();
|
||||
closeModal();
|
||||
} catch (e) {
|
||||
setIsLoading(false);
|
||||
}
|
||||
}, [
|
||||
loginConfirmRequest,
|
||||
loginRequest?.id,
|
||||
isConnected,
|
||||
clearAuthWaitParams,
|
||||
closeModal,
|
||||
]);
|
||||
|
||||
const rejectLoginRequest = useCallback(async () => {
|
||||
await deleteLoginRequest({ variables: { id: loginRequest.id } });
|
||||
}, [deleteLoginRequest, loginRequest]);
|
||||
try {
|
||||
await deleteLoginRequest({ variables: { id: loginRequest.id } });
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
clearAuthWaitParams?.();
|
||||
closeModal();
|
||||
}
|
||||
}, [deleteLoginRequest, loginRequest?.id, clearAuthWaitParams, closeModal]);
|
||||
|
||||
return (
|
||||
<View
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ export default function Form({
|
|||
profileData,
|
||||
openAccountModal,
|
||||
waitingSmsType,
|
||||
clearAuthWaitParams,
|
||||
}) {
|
||||
const { userId } = useSessionState(["userId"]);
|
||||
|
||||
|
|
@ -153,7 +154,11 @@ export default function Form({
|
|||
borderBottomWidth: 1,
|
||||
}}
|
||||
>
|
||||
<PhoneNumbers data={profileData} waitingSmsType={waitingSmsType} />
|
||||
<PhoneNumbers
|
||||
data={profileData}
|
||||
waitingSmsType={waitingSmsType}
|
||||
clearAuthWaitParams={clearAuthWaitParams}
|
||||
/>
|
||||
</View>
|
||||
|
||||
<View
|
||||
|
|
@ -190,6 +195,7 @@ export default function Form({
|
|||
profileData={profileData}
|
||||
openAccountModal={openAccountModal}
|
||||
waitingSmsType={waitingSmsType}
|
||||
clearAuthWaitParams={clearAuthWaitParams}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,11 @@ import {
|
|||
|
||||
import useSendAuthSMS from "~/hooks/useSendAuthSMS";
|
||||
|
||||
export default function PhoneNumbersView({ data, waitingSmsType }) {
|
||||
export default function PhoneNumbersView({
|
||||
data,
|
||||
waitingSmsType,
|
||||
clearAuthWaitParams,
|
||||
}) {
|
||||
const [isLoading, setIsLoading] = useState(waitingSmsType === "R" || false);
|
||||
const phoneNumberList = data.selectOneUser.manyPhoneNumber;
|
||||
|
||||
|
|
@ -69,8 +73,16 @@ export default function PhoneNumbersView({ data, waitingSmsType }) {
|
|||
useEffect(() => {
|
||||
if (data.selectOneUser.oneUserLoginRequest) {
|
||||
setIsLoading(false);
|
||||
clearAuthWaitParams?.();
|
||||
}
|
||||
}, [data.selectOneUser.oneUserLoginRequest]);
|
||||
}, [data.selectOneUser.oneUserLoginRequest, clearAuthWaitParams]);
|
||||
|
||||
// Defensive cleanup on unmount to ensure no lingering loader
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
setIsLoading(false);
|
||||
};
|
||||
}, []);
|
||||
|
||||
const deletePhoneNumberModalStatePair = useState({ visible: false });
|
||||
const [deletePhoneNumberModalState, setDeletePhoneNumberModalState] =
|
||||
|
|
|
|||
|
|
@ -37,6 +37,13 @@ export default withConnectivity(function Profile({ navigation, route }) {
|
|||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [userId]);
|
||||
|
||||
const clearAuthWaitParams = React.useCallback(() => {
|
||||
navigation.setParams({
|
||||
waitingSmsType: undefined,
|
||||
openAccountModal: undefined,
|
||||
});
|
||||
}, [navigation]);
|
||||
|
||||
if (loading || !data?.selectOneUser) {
|
||||
return <Loader />;
|
||||
}
|
||||
|
|
@ -53,6 +60,7 @@ export default withConnectivity(function Profile({ navigation, route }) {
|
|||
profileData={data}
|
||||
openAccountModal={route.params?.openAccountModal}
|
||||
waitingSmsType={route.params?.waitingSmsType}
|
||||
clearAuthWaitParams={clearAuthWaitParams}
|
||||
/>
|
||||
</ScrollView>
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue