Skip to content

Commit 67d3f72

Browse files
committed
fix: fixed email from magic Link not being passed to context
1 parent 5bc5b4b commit 67d3f72

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/App.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff 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.

src/features/auth/authUtils.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff 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;

src/features/statements/context/EntriesProvider.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)