diff --git a/src/auth/auth.server.ts b/src/auth/auth.server.ts index 74794c930..0e6f29c66 100644 --- a/src/auth/auth.server.ts +++ b/src/auth/auth.server.ts @@ -112,7 +112,7 @@ export class AuthService implements IAuthService { adsDisabled: user.adsDisabled, interestedInHidingAds: user.interestedInHidingAds, lastUsedFramework: user.lastUsedFramework, - signupSources: user.signupSources, + signupSources: user.signupSources ?? [], } } } diff --git a/src/components/NewsletterSignup.tsx b/src/components/NewsletterSignup.tsx index 26fd70b83..9215b9afc 100644 --- a/src/components/NewsletterSignup.tsx +++ b/src/components/NewsletterSignup.tsx @@ -27,7 +27,7 @@ export function NewsletterSignup({ const queryClient = useQueryClient() const { notify } = useToast() const { openLoginModal } = useLoginModal() - const isSubscribed = user?.signupSources.includes('newsletter') ?? false + const isSubscribed = user?.signupSources?.includes('newsletter') ?? false const { mutate, isPending } = useMutation({ mutationFn: () => addUserSignupSource({ data: { source: 'newsletter' } }), diff --git a/src/utils/users.server.ts b/src/utils/users.server.ts index e1c63c14a..17a3e5b78 100644 --- a/src/utils/users.server.ts +++ b/src/utils/users.server.ts @@ -418,15 +418,17 @@ export async function addUserSignupSource({ throw new Error('User not found') } - if (existingUser.signupSources.includes(data.source)) { + const existingSignupSources = existingUser.signupSources ?? [] + + if (existingSignupSources.includes(data.source)) { return { success: true, alreadyTagged: true, - signupSources: existingUser.signupSources, + signupSources: existingSignupSources, } } - const signupSources = [...existingUser.signupSources, data.source] + const signupSources = [...existingSignupSources, data.source] await db .update(users)