import { useEffect, useRef } from "react";
function QueuePage() {
const widgetRef = useRef<HTMLElement>(null);
useEffect(() => {
const widget = widgetRef.current;
if (!widget) return;
const handleEnter = (e: CustomEvent) => {
console.log("Entered queue:", e.detail.queueId);
analytics.track("queue_entered", { queueId: e.detail.queueId });
};
const handlePositionChange = (e: CustomEvent) => {
console.log("New position:", e.detail.position);
};
const handleAdmitted = (e: CustomEvent) => {
console.log("Admitted with token:", e.detail.token);
window.location.href = `/checkout?token=${e.detail.token}`;
};
widget.addEventListener("fanfare-queue-enter", handleEnter);
widget.addEventListener("fanfare-queue-position-change", handlePositionChange);
widget.addEventListener("fanfare-queue-admitted", handleAdmitted);
return () => {
widget.removeEventListener("fanfare-queue-enter", handleEnter);
widget.removeEventListener("fanfare-queue-position-change", handlePositionChange);
widget.removeEventListener("fanfare-queue-admitted", handleAdmitted);
};
}, []);
return (
<div className="queue-container">
<h1>Join Our Queue</h1>
<fanfare-queue-widget ref={widgetRef} queue-id="queue_123" />
</div>
);
}