import { asp as g } from "@asp/asp"; import { BarnoinPayBackground } from "@components/BarnoinPayBackground"; import BeasyLogoIcon from "@components/BeasyLogoIcon"; import * as Button from "@components/Button"; import * as Modal from "@components/Modal"; import AntDesign from "@expo/vector-icons/AntDesign"; import { LOG } from "@logger"; import { useMutation } from "@tanstack/react-query"; import type { AxiosError } from "axios"; import { useState } from "react"; import { Dimensions, ScrollView, Text, View } from "react-native"; import QrCode from "react-native-qrcode-svg"; import { waveGetTransactionStatus } from "@/features/pay/api"; import type { MainStackScreenComponentProps } from "@/navigations/types"; const log = LOG.extend("WaveQrCodePaymentScreen"); const WaveQrCodePaymentScreen: MainStackScreenComponentProps<"waveQrCodePaymentScreen"> = ({ route, navigation, }) => { log.verbose("WaveQrCodePaymentScreen"); const [error, setError] = useState(""); const data = route.params.data; const windowWidth = Dimensions.get("window").width; const qrSize = windowWidth * 0.7; const [isSuccess, setIsSuccess] = useState(false); const query = useMutation({ mutationKey: ["waveTransactionStatus", data.id], mutationFn: () => waveGetTransactionStatus(data.id), onError: (err: AxiosError) => { setError(JSON.stringify(err.response?.data) || err.message); }, onSuccess: (_data) => { setIsSuccess(true); }, }); return ( navigation.goBack()} /> Votre QR Code Veuillez scanner le QR Code pour terminer le paiement query.mutate()} isLoading={query.isPending}> Verification {error} setError("")}> OK Transaction réussie navigation.getParent()?.navigate("paymentResultScreen")} > OK ); }; export default WaveQrCodePaymentScreen;