From 71b58e61985de158d8bc8d17e46e8ff3be5ede47 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 19 Jun 2024 15:42:41 +0000 Subject: [PATCH] takes navigation props now. upon getting the payment url we go to qr screen --- src/hooks/useWave.tsx | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/hooks/useWave.tsx b/src/hooks/useWave.tsx index e99df40..f8912a8 100644 --- a/src/hooks/useWave.tsx +++ b/src/hooks/useWave.tsx @@ -1,4 +1,5 @@ import { useModalsManagerContext } from "@/contexts/ModalsManagerContext"; +import type { IpaymentStackNavigator } from "@/navigations/Types"; import { type IwavePaymentStarter, getTransactionStatus, @@ -6,6 +7,7 @@ import { } from "@/utils/requests/wavePayment"; import LoadingModal from "@components/modals/LoadingModal"; import { LOG } from "@logger"; +import type { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import * as WebBrowser from "expo-web-browser"; import { useState } from "react"; @@ -20,7 +22,13 @@ const paymentObjectDefault: IwavePaymentStarter = { montant: 0, }; -const useWave = () => { +const useWave = ( + navigation?: NativeStackNavigationProp< + IpaymentStackNavigator, + "paymentAmountInputScreen", + "IpaymentStackNavigator" + >, +) => { const { showModal, closeModal } = useModalsManagerContext(); const [isBrowserOpen, setIsBrowserOpen] = useState(false); @@ -101,9 +109,15 @@ const useWave = () => { showModal(); const response = await waveTransactionInitializerMutation.mutateAsync(amount); - log.info("waveTransactionHandler :: ", response.wave_launch_url); - log.info("Opening browser for payment..."); - await openBrowserThenCheckStatus(response.wave_launch_url, response.id); + log.info("waveTransactionHandler payment url received :: ", response.wave_launch_url); + // log.info("Opening browser for payment..."); + log.info("Navigating to the qr code screen..."); + closeModal(); + navigation + ?.getParent() + ?.navigate("waveQrCodePaymentScreen", { paymentUrl: response.wave_launch_url }); + + // await openBrowserThenCheckStatus(response.wave_launch_url, response.id); } catch (error) { log.error("waveTransactionHandler |", error); throw error; -- libgit2 0.27.1