'use client'; import { useState, useEffect, FC } from 'react'; import { generateBarcode } from '../lib/pdf/pdf417'; import { renderBarcode } from '../lib/pdf/renderBarcode'; import { EncodePayment, PaymentParams } from 'hub-3a-payment-encoder'; export const Pdf417Barcode:FC<{paymentParams:PaymentParams}> = ({paymentParams}) => { const [bitmapData, setBitmapData] = useState(undefined); useEffect(() => { const hub3a_text = EncodePayment(paymentParams); const barcodeMatrix = generateBarcode(hub3a_text); const bitmap = renderBarcode(barcodeMatrix, 2, 2); setBitmapData(bitmap); }, [paymentParams]); // Don't render until bitmap is generated (prevents hydration mismatch) if (!bitmapData) { return (
); } return (
); }