import { useQueue, useFanfareAuth } from "@waitify-io/fanfare-sdk-react";
function QueuePage() {
const { isAuthenticated, guest } = useFanfareAuth();
const { queue, status, position, enter, leave, isLoading, error } = useQueue("queue_123");
const handleEnter = async () => {
if (!isAuthenticated) {
await guest();
}
await enter();
};
if (isLoading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return (
<div>
<h1>{queue?.name}</h1>
{status?.status === "QUEUED" && (
<div>
<p>Your position: {position}</p>
<button onClick={leave}>Leave Queue</button>
</div>
)}
{status?.status === "ADMITTED" && (
<div>
<p>You are admitted!</p>
<a href={`/checkout?token=${status.admissionToken}`}>Go to Checkout</a>
</div>
)}
{!status && <button onClick={handleEnter}>Enter Queue</button>}
</div>
);
}