import { useEffect, useState } from "react"; import * as React from "react"; // material-ui import { Button, FormLabel, Stack, Typography, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Grid } from '@mui/material'; import { useFormik, FormikProvider } from 'formik'; import * as yup from 'yup'; import Loadable from 'components/Loadable'; const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent'))); import VisaIcon from "assets/images/icons/visacard.svg"; import MasterIcon from "assets/images/icons/mastercard.svg"; import JcbIcon from "assets/images/icons/jcb.svg"; import UnionPayIcon from "assets/images/icons/unionpay.svg"; import PpsIcon from "assets/images/icons/ppshk.svg"; import FpsIcon from "assets/images/icons/fps.svg"; const MultiPaymentWindow = (props) => { const windowTitle = "請選擇付款方式"; const [content, setContent] = useState(); const [loadtTransactionData, setLoadtTransactionData] = useState({}); const [loadAvailableMethodData, setLoadAvailableMethodData] = useState([]); const [paymentMethod, setPaymentMethod] = useState(""); const [transactionData, setTransactionData] = useState({}); const [availableMethodData, setAvailableMethodData] = useState([]); const [onReady, setOnReady] = useState(false); useEffect(() => { console.log(props.transactionData) if(Object.keys(props.transactionData).length > 0){ setLoadtTransactionData(props.transactionData) } }, [props.transactionData]); useEffect(() => { console.log(props.availableMethods) if(props.availableMethods.length > 0){ setLoadAvailableMethodData(props.availableMethods) } }, [props.availableMethods]); useEffect(() => { if(loadAvailableMethodData.length > 0){ setAvailableMethodData(loadAvailableMethodData) } }, [loadAvailableMethodData]); useEffect(() => { if(Object.keys(loadtTransactionData).length > 0){ setTransactionData(loadtTransactionData) } }, [loadtTransactionData]); useEffect(() => { if(availableMethodData.length > 0 && Object.keys(transactionData).length > 0){ setOnReady(true) } }, [availableMethodData,transactionData]); useEffect(() => { console.log(paymentMethod) }, [paymentMethod]); const selectedPaymentMethodHandle = (method) => () =>{ setPaymentMethod(method) props.setSelectedPaymentMethod(method); }; const confirmPaymentHandle = () => () =>{ props.setConfirmPayment(true); }; useEffect(() => { if(props.selectedPaymentMethod === ""){ setPaymentMethod("") } setPaymentMethod if(availableMethodData.length > 0){ setContent( 交易參考編號: {transactionData.transicationId} 付款金額: {"HK$ "+props.totalAmount} 付款方式: {paymentMethod !=""? 已選擇付款方式: {paymentMethod} : null} ) }else{ setContent( 付款功能現在不可用。 ) } }, [availableMethodData]); const formik = useFormik({ initialValues: ({ username: '', }), validationSchema: yup.object().shape({ }), }); return ( {windowTitle}
{!onReady ? :content }
); }; export default MultiPaymentWindow;