import { useSignal } from '@signal-js/react';
import { useEffect, useState } from 'react';
function LoginFlow() {
const { identify, alias, distinctId } = useSignal();
const [anonymousId, setAnonymousId] = useState<string | null>(null);
useEffect(() => {
// Store anonymous ID before login
if (!distinctId) {
// Get anonymous ID from localStorage or generate one
const stored = localStorage.getItem('anonymous_id');
if (stored) {
setAnonymousId(stored);
}
}
}, [distinctId]);
const handleLogin = async (userId: string, userTraits: Record<string, unknown>) => {
// Identify the user
identify(userId, userTraits);
// Link anonymous ID if it exists
if (anonymousId) {
alias(anonymousId);
localStorage.removeItem('anonymous_id');
}
};
return (
<button onClick={() => handleLogin('user_123', { email: 'user@example.com' })}>
Log in
</button>
);
}