diff --git a/src/common/types/stripe.ts b/src/common/types/stripe.ts index 7439ec55..1d7e8772 100644 --- a/src/common/types/stripe.ts +++ b/src/common/types/stripe.ts @@ -9,7 +9,8 @@ export const invoiceLinkPostRequestSchema = z.object({ invoiceId: z.string().min(1), invoiceAmountUsd: z.number().min(50), contactName: z.string().min(1), - contactEmail: z.string().email() + contactEmail: z.string().email(), + achPaymentsEnabled: z.optional(z.boolean()).default(false), }); export type PostInvoiceLinkRequest = z.infer< @@ -33,4 +34,4 @@ export const invoiceLinkGetResponseSchema = z.array( ); export type GetInvoiceLinksResponse = z.infer< - typeof invoiceLinkGetResponseSchema>; \ No newline at end of file + typeof invoiceLinkGetResponseSchema>; diff --git a/src/ui/pages/stripe/CreateLink.test.tsx b/src/ui/pages/stripe/CreateLink.test.tsx index 4ef32d1a..0d4cc464 100644 --- a/src/ui/pages/stripe/CreateLink.test.tsx +++ b/src/ui/pages/stripe/CreateLink.test.tsx @@ -72,6 +72,7 @@ describe("StripeCreateLinkPanel Tests", () => { await act(async () => { expect(createLinkMock).toHaveBeenCalledWith({ + achPaymentsEnabled: false, invoiceId: "INV123", invoiceAmountUsd: 100, contactName: "John Doe", diff --git a/src/ui/pages/stripe/CreateLink.tsx b/src/ui/pages/stripe/CreateLink.tsx index d97d4502..bbf0ad93 100644 --- a/src/ui/pages/stripe/CreateLink.tsx +++ b/src/ui/pages/stripe/CreateLink.tsx @@ -6,6 +6,7 @@ import { Text, TextInput, NumberInput, + Switch, Title, Modal, Anchor, @@ -42,6 +43,7 @@ export const StripeCreateLinkPanel: React.FC = ({ invoiceAmountUsd: 100, contactName: "", contactEmail: "", + achPaymentsEnabled: false, }, validate: { invoiceId: (value) => @@ -52,6 +54,8 @@ export const StripeCreateLinkPanel: React.FC = ({ value.length < 1 ? "Contact Name is required" : null, contactEmail: (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value) ? null : "Invalid email", + achPaymentsEnabled: (value) => + value ? "Feature not yet available" : null, }, }); @@ -110,6 +114,14 @@ export const StripeCreateLinkPanel: React.FC = ({ {...form.getInputProps("contactEmail")} required /> +