File tree Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,22 @@ const AppContent: React.FC = () => {
4444 } ) ) ;
4545 }
4646 } , [ authState . user , authState . isAuthenticated ] ) ;
47+
48+ // Listen for magic link verification and ensure user email is saved to entries context
49+ useEffect ( ( ) => {
50+ const handleMagicLinkVerified = ( event : any ) => {
51+ if ( event . detail ?. user ?. email ) {
52+ console . log ( 'App: Magic link verified with email:' , event . detail . user . email ) ;
53+ // Dispatch event with user email to entries context
54+ window . dispatchEvent ( new CustomEvent ( 'authStateChanged' , {
55+ detail : { user : { email : event . detail . user . email } }
56+ } ) ) ;
57+ }
58+ } ;
59+
60+ window . addEventListener ( 'magicLinkVerified' , handleMagicLinkVerified ) ;
61+ return ( ) => window . removeEventListener ( 'magicLinkVerified' , handleMagicLinkVerified ) ;
62+ } , [ ] ) ;
4763
4864 return (
4965 // MainPage and Header receives the username from context.
Original file line number Diff line number Diff line change @@ -33,10 +33,15 @@ export const handleMagicLinkVerification = async () => {
3333 window . localStorage . setItem ( 'auth' , 'updated' ) ;
3434 window . localStorage . removeItem ( 'auth' ) ;
3535
36- // Dispatch a custom event that components can listen for
36+ // Dispatch magicLinkVerified event
3737 window . dispatchEvent ( new CustomEvent ( 'magicLinkVerified' , {
3838 detail : { user : result . user }
3939 } ) ) ;
40+
41+ // Also dispatch authStateChanged to update entries context
42+ window . dispatchEvent ( new CustomEvent ( 'authStateChanged' , {
43+ detail : { user : result . user }
44+ } ) ) ;
4045 }
4146
4247 return result ;
Original file line number Diff line number Diff line change @@ -91,16 +91,20 @@ export const EntriesProvider: React.FC<EntriesProviderProps> = ({
9191 useEffect ( ( ) => {
9292 // Handler for auth state changes
9393 const handleAuthStateChange = ( event : AuthStateChangedEvent ) => {
94+ console . log ( 'EntriesProvider: Auth state changed event received:' , event . detail ) ;
95+
9496 // If we have a user object with a username
9597 if ( event . detail ?. user ?. username ) {
9698 // Update username from auth state - ALWAYS update, don't check if empty
9799 setData ( { type : 'SET_USERNAME' , payload : event . detail . user . username } ) ;
100+ console . log ( 'EntriesProvider: Updated username to' , event . detail . user . username ) ;
98101 }
99102
100103 // If we have a user object with an email
101104 if ( event . detail ?. user ?. email ) {
102105 // Store user email from auth (this is the email they used for magic link)
103106 setData ( { type : 'SET_USER_EMAIL' , payload : event . detail . user . email } ) ;
107+ console . log ( 'EntriesProvider: Updated user email to' , event . detail . user . email ) ;
104108 }
105109 } ;
106110
You can’t perform that action at this time.
0 commit comments