diff --git a/actions/publishToPublication.ts b/actions/publishToPublication.ts index 988f4175..02e7cb17 100644 --- a/actions/publishToPublication.ts +++ b/actions/publishToPublication.ts @@ -61,6 +61,7 @@ export async function publishToPublication({ entitiesToDelete, publishedAt, postPreferences, + sendEmail = true, }: { root_entity: string; publication_uri?: string; @@ -76,6 +77,7 @@ export async function publishToPublication({ showMentions?: boolean; showRecommends?: boolean; } | null; + sendEmail?: boolean; }): Promise { let identity = await getIdentityData(); if (!identity || !identity.atp_did) { @@ -403,7 +405,7 @@ export async function publishToPublication({ // Fire newsletter broadcast on first publish to a newsletter-enabled pub. // The composite PK on publication_post_sends is the real idempotency guard — // ignoreDuplicates makes re-publishes and concurrent runs a no-op. - if (publication_uri && !existingDocUri) { + if (publication_uri && !existingDocUri && sendEmail) { const { data: settings } = await supabaseServerClient .from("publication_newsletter_settings") .select("enabled") diff --git a/app/(app)/[leaflet_id]/publish/PublishPost.tsx b/app/(app)/[leaflet_id]/publish/PublishPost.tsx index 6f14a800..f60d011b 100644 --- a/app/(app)/[leaflet_id]/publish/PublishPost.tsx +++ b/app/(app)/[leaflet_id]/publish/PublishPost.tsx @@ -157,6 +157,7 @@ const PublishPostForm = ( entitiesToDelete: props.entitiesToDelete, publishedAt: localPublishedAt?.toISOString() || new Date().toISOString(), postPreferences, + sendEmail: shareState.email, }); if (!result.success) {