React integration
React Integration
1. Create a Widget Component
import { useEffect } from 'react';
interface StaySignalWidgetProps {
onComplete?: (payload: any) => void;
onError?: (error: any) => void;
}
declare global {
interface Window { StaySignal: any; }
}
export function StaySignalWidget({ onComplete, onError }: StaySignalWidgetProps) {
useEffect(() => {
const scriptId = 'staysignal-widget-script';
if (document.getElementById(scriptId)) return;
const script = document.createElement('script');
script.id = scriptId;
script.src = '/api/widget/script/YOUR_SITE_ID_HERE'; // Use the new script URL
script.async = true;
script.onload = () => {
if (!window.StaySignal) {
console.error("StaySignal object not found after script load.");
onError?.(new Error("StaySignal failed to initialize."));
return;
}
window.StaySignal.init({
// site_id is included in the script URL
onComplete: (payload: any) => { onComplete?.(payload); },
onError: (error: any) => { onError?.(error); }
});
window.StaySignal.onReady(() => { /* Widget Core Ready */ });
};
script.onerror = () => { onError?.(new Error("Failed to load StaySignal script.")); };
document.body.appendChild(script);
return () => {
const existingScript = document.getElementById(scriptId);
if (existingScript) {
document.body.removeChild(existingScript);
}
};
}, [onComplete, onError]); // Adjust dependencies
return null; // Component doesn't render anything itself
}2. Create a Cancel Button Component
3. Use the Components
Need Help?
Last updated