diff --git a/src/pages/members/agent-balance/AgentBalance.tsx b/src/pages/members/agent-balance/AgentBalance.tsx index ee5971b..8a3ade5 100644 --- a/src/pages/members/agent-balance/AgentBalance.tsx +++ b/src/pages/members/agent-balance/AgentBalance.tsx @@ -112,13 +112,15 @@ const AgentBalance = () => { async function getQrCode(customerId:any): Promise { try { - setBarcode(`https://img.freepik.com/free-vector/scan-me-qr-code_78370-2915.jpg?semt=ais_hybrid&w=740`) + setBarcode(``) let getToken = await axios.get(`${BASE_URL}/token/get`, { params: { id: customerId }}); console.log(getToken.data.data); - // setBarcode(getToken.data.data.qrCode); + setBarcode(getToken.data.data.qrCode); } catch (error: any) { toast.warning(error.message) console.log(error); + } finally { + // setBarcode(`https://miro.medium.com/v2/resize:fit:250/1*DcceOyLkzU--EzP4PYKd_g.png`) } } @@ -192,35 +194,34 @@ const AgentBalance = () => { const PaymentCard = ({ barcode, agent_name, customerId }:any) => { const cardRef:any = useRef(null); - // useEffect(() => { - // fetchToken(); - // }, []); - // async function fetchToken(): Promise { - // try { - // let getToken = await axios.get(`${BASE_URL}/token/get`, { params: { id: customerId }}); - // console.log(getToken.data.data); - // // setBarcode(getToken.data.data.qrCode); - // setBarcode(`https://img.freepik.com/free-vector/scan-me-qr-code_78370-2915.jpg?semt=ais_hybrid&w=740`) - // } catch (error: any) { - // toast.warning(error.message) - // console.log(error); - // } - // } + const waitForImageLoad = (img: HTMLImageElement): Promise => { + return new Promise((resolve) => { + if (img.complete && img.naturalHeight !== 0) { + resolve(); + } else { + toast.warning(`No QR Code`) + img.onload = () => resolve(); + } + }); + }; + const handleDownload = async () => { if (!cardRef.current) return; const img = cardRef.current.querySelector('img'); - if (!img || !img.complete) { - // Wait until the barcode image has fully loaded - await new Promise((resolve) => { - img.onload = resolve; - }); + if (img) { + await waitForImageLoad(img); + } else { + return toast.warning(`No QR Code`) } const canvas = await html2canvas(cardRef.current, { - useCORS: true, // Important for external images + useCORS: true, + allowTaint: false, + backgroundColor: 'white', + scale: 2, }); const dataUrl = canvas.toDataURL('image/png'); @@ -230,23 +231,21 @@ const PaymentCard = ({ barcode, agent_name, customerId }:any) => { link.click(); }; - return (
{/* Card content to render */}
-
+

{agent_name}

- {barcode && ( Barcode )}
@@ -261,51 +260,6 @@ const PaymentCard = ({ barcode, agent_name, customerId }:any) => {
); - - return ( -
-
-

- {agent_name} -

- {barcode && ( - Barcode - )} -
-
- ); - - // return ( - //
- // {/* Background Card Image */} - // Card Template - - // {/* Content Overlay */} - //
- // {/* Agent Name at Top */} - //

- // {agent_name} - //

- - // {/* Barcode */} - // {barcode && ( - // Barcode - // )} - //
- //
- // ); }; export default AgentBalance;