From dbed9ac1bd2e229e3721337b5508dc8b0fb96cd0 Mon Sep 17 00:00:00 2001 From: Moheeb Zara Date: Sat, 16 May 2026 23:45:23 -0700 Subject: [PATCH] feat(forms): link prior submissions on member add + email change addMember and updateMember (when email set/changed) now call linkSubmissionsByEmail so an admin-established member email retroactively picks up earlier unlinked submissions. Service client (form_submissions has no client write policy), space-scoped. --- lib/actions/members.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/actions/members.ts b/lib/actions/members.ts index 2be39c8..ebc9425 100644 --- a/lib/actions/members.ts +++ b/lib/actions/members.ts @@ -2,6 +2,8 @@ import { revalidatePath } from 'next/cache' import { createClient } from '@/lib/supabase/server' +import { createAdminClient } from '@/lib/supabase/admin' +import { linkSubmissionsByEmail } from './forms' import { requireMember, requireMemberWithRole, @@ -54,6 +56,13 @@ export async function addMember(formData: { .single() if (error) return { error: error.message } + + // Associate any prior unlinked form submissions for this email with the + // new member (admin-established email). + if (v.data.email) { + await linkSubmissionsByEmail(createAdminClient(), self.space_id, data.id as string, v.data.email) + } + revalidatePath('/members') return { data } } @@ -89,6 +98,12 @@ export async function updateMember( .eq('space_id', self.space_id) if (error) return { error: error.message } + + // If the email was set/corrected, associate matching prior submissions. + if (patch.email) { + await linkSubmissionsByEmail(createAdminClient(), self.space_id, id, patch.email) + } + revalidatePath('/members') return { success: true as const } }