@@ -21,6 +21,7 @@ export default function RegisterPage() {
2121 const [ isLoading , setIsLoading ] = useState ( false ) ;
2222 const [ error , setError ] = useState ( "" ) ;
2323 const [ successMessage , setSuccessMessage ] = useState ( "" ) ;
24+ const [ lastRegisteredEmail , setLastRegisteredEmail ] = useState < string | null > ( null ) ;
2425
2526 // Check if public registration is enabled
2627 const publicRegistrationEnabled = import . meta. env . VITE_ENABLE_PUBLIC_REGISTRATION !== 'false' ;
@@ -41,11 +42,25 @@ export default function RegisterPage() {
4142 } , [ isAuthenticated , navigate ] ) ;
4243
4344 useEffect ( ( ) => {
44- if ( successMessage && typeof window !== 'undefined' && typeof window . twq === 'function' ) {
45- // Fire Twitter conversion event when confirmation modal is shown
46- window . twq ( 'event' , 'tw-ql07b-ql07b' , { } ) ;
45+ if ( ! successMessage || ! lastRegisteredEmail ) {
46+ return ;
47+ }
48+
49+ if ( typeof window === 'undefined' || typeof window . twq !== 'function' ) {
50+ return ;
51+ }
52+
53+ const normalizedEmail = lastRegisteredEmail . trim ( ) . toLowerCase ( ) ;
54+
55+ try {
56+ window . twq ( 'event' , 'tw-ql07b-ql0xk' , {
57+ email_address : normalizedEmail || null ,
58+ } ) ;
59+ } catch ( conversionError ) {
60+ console . warn ( 'Twitter conversion event failed, sending fallback payload' , conversionError ) ;
61+ window . twq ( 'event' , 'tw-ql07b-ql0xk' , { } ) ;
4762 }
48- } , [ successMessage ] ) ;
63+ } , [ successMessage , lastRegisteredEmail ] ) ;
4964
5065 const handleRegister = async ( e : React . FormEvent ) => {
5166 e . preventDefault ( ) ;
@@ -85,6 +100,7 @@ export default function RegisterPage() {
85100 if ( result . success ) {
86101 setSuccessMessage ( "Registration successful! Please check your email to verify your account." ) ;
87102 setError ( "" ) ;
103+ setLastRegisteredEmail ( email ) ;
88104 // Clear form
89105 setUsername ( "" ) ;
90106 setEmail ( "" ) ;
0 commit comments