import { useEffect, useRef, useState } from "react";
function FlashSalePage() {
const widgetRef = useRef<HTMLElement>(null);
const [hasEntered, setHasEntered] = useState(false);
useEffect(() => {
const widget = widgetRef.current;
if (!widget) return;
const handleEnter = (e: CustomEvent) => {
console.log("Entered flash sale:", e.detail.timedReleaseId);
setHasEntered(true);
analytics.track("flash_sale_entered");
};
const handleShop = (e: CustomEvent) => {
console.log("User is shopping");
analytics.track("flash_sale_shopping");
};
const handleComplete = (e: CustomEvent) => {
console.log("Purchase completed!");
analytics.track("flash_sale_completed");
showSuccessToast("Thank you for your purchase!");
};
const handleExpired = (e: CustomEvent) => {
console.log("Time window expired");
showWarningToast("Your shopping window has expired");
};
widget.addEventListener("fanfare-timed-release-enter", handleEnter);
widget.addEventListener("fanfare-timed-release-shop", handleShop);
widget.addEventListener("fanfare-timed-release-complete", handleComplete);
widget.addEventListener("fanfare-timed-release-expired", handleExpired);
return () => {
widget.removeEventListener("fanfare-timed-release-enter", handleEnter);
widget.removeEventListener("fanfare-timed-release-shop", handleShop);
widget.removeEventListener("fanfare-timed-release-complete", handleComplete);
widget.removeEventListener("fanfare-timed-release-expired", handleExpired);
};
}, []);
return (
<div className="flash-sale-page">
<div className="hero">
<h1>Flash Sale</h1>
<p>Limited time only - up to 70% off!</p>
</div>
<fanfare-timed-release-widget ref={widgetRef} timed-release-id="tr_123" checkout-url="/shop" />
{hasEntered && <div className="urgency-banner">Complete your purchase before time runs out!</div>}
</div>
);
}