Commit 71b58e61 by G

takes navigation props now. upon getting the payment url we go to qr screen

parent 04294196
import { useModalsManagerContext } from "@/contexts/ModalsManagerContext"; import { useModalsManagerContext } from "@/contexts/ModalsManagerContext";
import type { IpaymentStackNavigator } from "@/navigations/Types";
import { import {
type IwavePaymentStarter, type IwavePaymentStarter,
getTransactionStatus, getTransactionStatus,
...@@ -6,6 +7,7 @@ import { ...@@ -6,6 +7,7 @@ import {
} from "@/utils/requests/wavePayment"; } from "@/utils/requests/wavePayment";
import LoadingModal from "@components/modals/LoadingModal"; import LoadingModal from "@components/modals/LoadingModal";
import { LOG } from "@logger"; import { LOG } from "@logger";
import type { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useMutation, useQueryClient } from "@tanstack/react-query";
import * as WebBrowser from "expo-web-browser"; import * as WebBrowser from "expo-web-browser";
import { useState } from "react"; import { useState } from "react";
...@@ -20,7 +22,13 @@ const paymentObjectDefault: IwavePaymentStarter = { ...@@ -20,7 +22,13 @@ const paymentObjectDefault: IwavePaymentStarter = {
montant: 0, montant: 0,
}; };
const useWave = () => { const useWave = (
navigation?: NativeStackNavigationProp<
IpaymentStackNavigator,
"paymentAmountInputScreen",
"IpaymentStackNavigator"
>,
) => {
const { showModal, closeModal } = useModalsManagerContext(); const { showModal, closeModal } = useModalsManagerContext();
const [isBrowserOpen, setIsBrowserOpen] = useState(false); const [isBrowserOpen, setIsBrowserOpen] = useState(false);
...@@ -101,9 +109,15 @@ const useWave = () => { ...@@ -101,9 +109,15 @@ const useWave = () => {
showModal(<LoadingModal message="Initialization de la transaction." />); showModal(<LoadingModal message="Initialization de la transaction." />);
const response = await waveTransactionInitializerMutation.mutateAsync(amount); const response = await waveTransactionInitializerMutation.mutateAsync(amount);
log.info("waveTransactionHandler :: ", response.wave_launch_url); log.info("waveTransactionHandler payment url received :: ", response.wave_launch_url);
log.info("Opening browser for payment..."); // log.info("Opening browser for payment...");
await openBrowserThenCheckStatus(response.wave_launch_url, response.id); 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) { } catch (error) {
log.error("waveTransactionHandler |", error); log.error("waveTransactionHandler |", error);
throw error; throw error;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment