2023-01-07 20:54:12 +00:00
|
|
|
import QRCodeStyling from "qr-code-styling";
|
|
|
|
import {useEffect, useRef} from "react";
|
|
|
|
|
|
|
|
export default function QrCode(props) {
|
|
|
|
const qrRef = useRef();
|
|
|
|
const link = props.link;
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
console.log("Showing QR: ", link);
|
|
|
|
if (link?.length > 0) {
|
|
|
|
let qr = new QRCodeStyling({
|
|
|
|
width: props.width || 256,
|
|
|
|
height: props.height || 256,
|
|
|
|
data: link,
|
|
|
|
margin: 5,
|
|
|
|
type: 'canvas',
|
|
|
|
image: props.avatar,
|
|
|
|
dotsOptions: {
|
|
|
|
type: 'rounded'
|
|
|
|
},
|
|
|
|
cornersSquareOptions: {
|
|
|
|
type: 'extra-rounded'
|
|
|
|
},
|
|
|
|
imageOptions: {
|
|
|
|
crossOrigin: "anonymous"
|
|
|
|
}
|
|
|
|
});
|
|
|
|
qrRef.current.innerHTML = "";
|
|
|
|
qr.append(qrRef.current);
|
|
|
|
qrRef.current.onclick = function (e) {
|
|
|
|
let elm = document.createElement("a");
|
|
|
|
elm.href = `lightning:${link}`;
|
|
|
|
elm.click();
|
|
|
|
}
|
2023-01-07 23:01:32 +00:00
|
|
|
} else {
|
|
|
|
qrRef.current.innerHTML = "";
|
2023-01-07 20:54:12 +00:00
|
|
|
}
|
|
|
|
}, [link]);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="qr" ref={qrRef}></div>
|
|
|
|
);
|
|
|
|
}
|