From c5589793da2ebe832f441e425f218589e1027406 Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Thu, 19 Mar 2026 22:12:08 +0100 Subject: [PATCH] Allow skipping confirmation email when adding mailing list subscribers When creating a new subscriber, operators can now check "Skip confirmation email" if they already have the recipient's consent. This creates the subscriber in confirmed status and skips sending the notification email. Signed-off-by: Bryan Frimin --- .../NewCompliancePageSubscriberDialog.tsx | 15 ++++++++++-- pkg/mailman/service.go | 24 +++++++++++++------ pkg/server/api/console/v1/schema.graphql | 1 + pkg/server/api/console/v1/v1_resolver.go | 1 + 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/apps/console/src/pages/organizations/compliance-page/mailing-list/_components/NewCompliancePageSubscriberDialog.tsx b/apps/console/src/pages/organizations/compliance-page/mailing-list/_components/NewCompliancePageSubscriberDialog.tsx index 0d0551c36..8b9ddeeae 100644 --- a/apps/console/src/pages/organizations/compliance-page/mailing-list/_components/NewCompliancePageSubscriberDialog.tsx +++ b/apps/console/src/pages/organizations/compliance-page/mailing-list/_components/NewCompliancePageSubscriberDialog.tsx @@ -1,5 +1,5 @@ import { useTranslate } from "@probo/i18n"; -import { Button, Dialog, DialogContent, DialogFooter, type DialogRef, Field, Spinner } from "@probo/ui"; +import { Button, Checkbox, Dialog, DialogContent, DialogFooter, type DialogRef, Field, Spinner } from "@probo/ui"; import { type DataID, graphql } from "relay-runtime"; import { z } from "zod"; @@ -42,10 +42,11 @@ export function NewCompliancePageSubscriberDialog(props: { .min(1, __("Email is required")) .trim() .email(__("Please enter a valid email address")), + confirmed: z.boolean(), }); const form = useFormWithSchema(schema, { - defaultValues: { fullName: "", email: "" }, + defaultValues: { fullName: "", email: "", confirmed: false }, }); const [createSubscriber, isCreating] = useMutationWithToasts( @@ -63,6 +64,7 @@ export function NewCompliancePageSubscriberDialog(props: { mailingListId, fullName: data.fullName.trim(), email: data.email.trim(), + confirmed: data.confirmed || undefined, }, connections: connectionId ? [connectionId] : [], }, @@ -102,6 +104,15 @@ export function NewCompliancePageSubscriberDialog(props: { {...form.register("email")} placeholder={__("john@example.com")} /> +