import { useEffect, useRef } from "react";
function DrawPage() {
const widgetRef = useRef<HTMLElement>(null);
useEffect(() => {
const widget = widgetRef.current;
if (!widget) return;
const handleEnter = (e: CustomEvent) => {
console.log("Entered draw:", e.detail.drawId);
analytics.track("draw_entered");
};
const handleResult = (e: CustomEvent<{ drawId: string; won: boolean }>) => {
if (e.detail.won) {
console.log("Congratulations! You won!");
showConfetti();
} else {
console.log("Better luck next time");
}
};
const handleProceed = (e: CustomEvent<{ token: string }>) => {
window.location.href = `/checkout?token=${e.detail.token}`;
};
widget.addEventListener("fanfare-draw-enter", handleEnter);
widget.addEventListener("fanfare-draw-result", handleResult);
widget.addEventListener("fanfare-draw-proceed", handleProceed);
return () => {
widget.removeEventListener("fanfare-draw-enter", handleEnter);
widget.removeEventListener("fanfare-draw-result", handleResult);
widget.removeEventListener("fanfare-draw-proceed", handleProceed);
};
}, []);
return (
<div className="draw-container">
<h1>Limited Edition Raffle</h1>
<fanfare-draw-widget ref={widgetRef} draw-id="draw_123" />
</div>
);
}