Headless Components

Use headless components for maximum customization

Headless Subscription QR Generator

1import { HeadlessSubscriptionQRGenerator } from 'pyhard-vendor-sdk';
2
3function CustomSubscriptionForm() {
4  return (
5    <HeadlessSubscriptionQRGenerator>
6      {({ 
7        amount, 
8        setAmount, 
9        interval, 
10        setInterval, 
11        generateQR, 
12        qrData 
13      }) => (
14        <div className="bg-white p-6 rounded-lg shadow-lg">
15          <h2 className="text-2xl font-bold mb-4">Create Subscription</h2>
16          <div className="space-y-4">
17            <div>
18              <label className="block text-sm font-medium mb-2">
19                Amount (PYUSD)
20              </label>
21              <input
22                type="number"
23                value={amount}
24                onChange={(e) => setAmount(e.target.value)}
25                className="w-full p-2 border rounded"
26              />
27            </div>
28            <div>
29              <label className="block text-sm font-medium mb-2">
30                Interval
31              </label>
32              <select
33                value={interval}
34                onChange={(e) => setInterval(e.target.value)}
35                className="w-full p-2 border rounded"
36              >
37                <option value="daily">Daily</option>
38                <option value="weekly">Weekly</option>
39                <option value="monthly">Monthly</option>
40              </select>
41            </div>
42            <button
43              onClick={generateQR}
44              className="w-full bg-blue-600 text-white py-2 px-4 rounded hover:bg-blue-700"
45            >
46              Generate QR Code
47            </button>
48            {qrData && (
49              <div className="text-center">
50                <img src={qrData.qrCode} alt="Subscription QR" />
51                <p className="text-sm text-gray-600 mt-2">
52                  Scan with PyHard mobile app
53                </p>
54              </div>
55            )}
56          </div>
57        </div>
58      )}
59    </HeadlessSubscriptionQRGenerator>
60  );
61}