@churchapps/apphelper 1.3.6 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/donations/components/MultiGatewayDonationForm.js +1 -1
  2. package/dist/donations/components/MultiGatewayDonationForm.js.map +1 -1
  3. package/dist/donations/helpers/Locale.d.ts.map +1 -1
  4. package/dist/donations/helpers/Locale.js +1 -0
  5. package/dist/donations/helpers/Locale.js.map +1 -1
  6. package/dist/donations/providers/kingdomfunding/KingdomFundingNonAuthDonationInner.d.ts.map +1 -1
  7. package/dist/donations/providers/kingdomfunding/KingdomFundingNonAuthDonationInner.js +21 -9
  8. package/dist/donations/providers/kingdomfunding/KingdomFundingNonAuthDonationInner.js.map +1 -1
  9. package/dist/donations/providers/paypal/PayPalButtons.d.ts +10 -0
  10. package/dist/donations/providers/paypal/PayPalButtons.d.ts.map +1 -0
  11. package/dist/donations/providers/paypal/PayPalButtons.js +53 -0
  12. package/dist/donations/providers/paypal/PayPalButtons.js.map +1 -0
  13. package/dist/donations/providers/paypal/PayPalHostedFields.d.ts +0 -5
  14. package/dist/donations/providers/paypal/PayPalHostedFields.d.ts.map +1 -1
  15. package/dist/donations/providers/paypal/PayPalHostedFields.js +2 -36
  16. package/dist/donations/providers/paypal/PayPalHostedFields.js.map +1 -1
  17. package/dist/donations/providers/paypal/PayPalNonAuthDonationInner.d.ts.map +1 -1
  18. package/dist/donations/providers/paypal/PayPalNonAuthDonationInner.js +96 -50
  19. package/dist/donations/providers/paypal/PayPalNonAuthDonationInner.js.map +1 -1
  20. package/dist/donations/providers/paypal/PayPalProvider.d.ts.map +1 -1
  21. package/dist/donations/providers/paypal/PayPalProvider.js +51 -30
  22. package/dist/donations/providers/paypal/PayPalProvider.js.map +1 -1
  23. package/dist/donations/providers/paypal/paypalSdk.d.ts +7 -0
  24. package/dist/donations/providers/paypal/paypalSdk.d.ts.map +1 -0
  25. package/dist/donations/providers/paypal/paypalSdk.js +40 -0
  26. package/dist/donations/providers/paypal/paypalSdk.js.map +1 -0
  27. package/dist/donations/providers/paystack/PaystackNonAuthDonationInner.d.ts.map +1 -1
  28. package/dist/donations/providers/paystack/PaystackNonAuthDonationInner.js +24 -11
  29. package/dist/donations/providers/paystack/PaystackNonAuthDonationInner.js.map +1 -1
  30. package/dist/donations/providers/stripe/ExpressCheckout.d.ts +13 -0
  31. package/dist/donations/providers/stripe/ExpressCheckout.d.ts.map +1 -0
  32. package/dist/donations/providers/stripe/ExpressCheckout.js +45 -0
  33. package/dist/donations/providers/stripe/ExpressCheckout.js.map +1 -0
  34. package/dist/donations/providers/stripe/NonAuthDonationInner.d.ts +2 -0
  35. package/dist/donations/providers/stripe/NonAuthDonationInner.d.ts.map +1 -1
  36. package/dist/donations/providers/stripe/NonAuthDonationInner.js +119 -34
  37. package/dist/donations/providers/stripe/NonAuthDonationInner.js.map +1 -1
  38. package/dist/donations/providers/stripe/StripeProvider.d.ts.map +1 -1
  39. package/dist/donations/providers/stripe/StripeProvider.js +1 -1
  40. package/dist/donations/providers/stripe/StripeProvider.js.map +1 -1
  41. package/dist/markdown/components/markdownEditor/Editor.d.ts.map +1 -1
  42. package/dist/markdown/components/markdownEditor/Editor.js +2 -0
  43. package/dist/markdown/components/markdownEditor/Editor.js.map +1 -1
  44. package/dist/markdown/components/markdownEditor/plugins/MarkdownTransformers.d.ts.map +1 -1
  45. package/dist/markdown/components/markdownEditor/plugins/MarkdownTransformers.js +2 -0
  46. package/dist/markdown/components/markdownEditor/plugins/MarkdownTransformers.js.map +1 -1
  47. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.d.ts.map +1 -1
  48. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.js +22 -2
  49. package/dist/markdown/components/markdownEditor/plugins/ToolbarPlugin.js.map +1 -1
  50. package/dist/markdown/components/markdownEditor/plugins/image/ImageNode.d.ts +30 -0
  51. package/dist/markdown/components/markdownEditor/plugins/image/ImageNode.d.ts.map +1 -0
  52. package/dist/markdown/components/markdownEditor/plugins/image/ImageNode.js +81 -0
  53. package/dist/markdown/components/markdownEditor/plugins/image/ImageNode.js.map +1 -0
  54. package/dist/markdown/components/markdownEditor/plugins/image/ImageTransformer.d.ts +3 -0
  55. package/dist/markdown/components/markdownEditor/plugins/image/ImageTransformer.d.ts.map +1 -0
  56. package/dist/markdown/components/markdownEditor/plugins/image/ImageTransformer.js +20 -0
  57. package/dist/markdown/components/markdownEditor/plugins/image/ImageTransformer.js.map +1 -0
  58. package/dist/public/locales/ar.json +5 -0
  59. package/dist/public/locales/cs.json +5 -0
  60. package/dist/public/locales/da.json +5 -0
  61. package/dist/public/locales/de.json +5 -0
  62. package/dist/public/locales/en.json +7 -0
  63. package/dist/public/locales/es.json +5 -0
  64. package/dist/public/locales/fi.json +5 -0
  65. package/dist/public/locales/fr.json +5 -0
  66. package/dist/public/locales/hi.json +5 -0
  67. package/dist/public/locales/hu.json +5 -0
  68. package/dist/public/locales/id.json +5 -0
  69. package/dist/public/locales/it.json +5 -0
  70. package/dist/public/locales/ja.json +5 -0
  71. package/dist/public/locales/ko.json +5 -0
  72. package/dist/public/locales/lt.json +5 -0
  73. package/dist/public/locales/nl.json +5 -0
  74. package/dist/public/locales/no.json +5 -0
  75. package/dist/public/locales/pl.json +5 -0
  76. package/dist/public/locales/pt.json +5 -0
  77. package/dist/public/locales/ro.json +5 -0
  78. package/dist/public/locales/ru.json +5 -0
  79. package/dist/public/locales/sk.json +5 -0
  80. package/dist/public/locales/sl.json +5 -0
  81. package/dist/public/locales/sr.json +5 -0
  82. package/dist/public/locales/sv.json +5 -0
  83. package/dist/public/locales/tl.json +5 -0
  84. package/dist/public/locales/tr.json +5 -0
  85. package/dist/public/locales/uk.json +5 -0
  86. package/dist/public/locales/vi.json +5 -0
  87. package/dist/public/locales/zh.json +5 -0
  88. package/package.json +2 -2
@@ -29,6 +29,7 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
29
29
  const [searchParams, setSearchParams] = useState(null);
30
30
  const [notes, setNotes] = useState("");
31
31
  const [coverFees, setCoverFees] = useState(false);
32
+ const [anonymous, setAnonymous] = useState(false);
32
33
  const captchaRef = useRef(null);
33
34
  const currency = gateway?.currency || "ngn";
34
35
  const fmt = (amount) => CurrencyHelper.formatCurrencyWithLocale(amount, currency);
@@ -45,10 +46,11 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
45
46
  const list = props.allowedFundIds?.length ? data.filter((f) => props.allowedFundIds.includes(f.id)) : data;
46
47
  setFunds(list);
47
48
  const selected = fundId ? list.find((f) => f.id === fundId) : undefined;
49
+ // go through handleFundDonationsChange so a preselected amount also updates fundsTotal/fee/total, not just the field
48
50
  if (selected)
49
- setFundDonations([{ fundId: selected.id, amount: amount ? parseFloat(amount) : 0 }]);
51
+ handleFundDonationsChange([{ fundId: selected.id, amount: amount ? parseFloat(amount) : 0 }]);
50
52
  else if (list.length)
51
- setFundDonations([{ fundId: list[0].id }]);
53
+ handleFundDonationsChange([{ fundId: list[0].id }]);
52
54
  });
53
55
  ApiHelper.get("/churches/lookup/?id=" + props.churchId, "MembershipApi").then((data) => setChurch(data));
54
56
  ApiHelper.get(`/donate/gateways/${props.churchId}`, "GivingApi").then((response) => {
@@ -70,15 +72,20 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
70
72
  })
71
73
  .catch(() => setCaptchaResponse("error"));
72
74
  };
75
+ const handleAnonymousChange = (_e, checked) => {
76
+ setAnonymous(checked);
77
+ if (checked)
78
+ setDonationType("once");
79
+ };
73
80
  const handleCheckChange = (_e, checked) => {
74
81
  setCoverFees(checked);
75
82
  setTotal(checked ? fundsTotal + transactionFee : fundsTotal);
76
83
  };
77
84
  const validate = () => {
78
85
  const result = [];
79
- if (!firstName)
86
+ if (!anonymous && !firstName)
80
87
  result.push(Locale.label("donation.donationForm.validate.firstName"));
81
- if (!lastName)
88
+ if (!anonymous && !lastName)
82
89
  result.push(Locale.label("donation.donationForm.validate.lastName"));
83
90
  if (!email)
84
91
  result.push(Locale.label("donation.donationForm.validate.email"));
@@ -102,9 +109,14 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
102
109
  }
103
110
  setProcessing(true);
104
111
  try {
105
- await ApiHelper.post("/users/loadOrCreate", { userEmail: email, firstName, lastName }, "MembershipApi");
106
- const person = await ApiHelper.post("/people/loadOrCreate", { churchId: props.churchId, firstName, lastName, email }, "MembershipApi");
107
- await processDonation(person);
112
+ if (anonymous) {
113
+ await processDonation(null);
114
+ }
115
+ else {
116
+ await ApiHelper.post("/users/loadOrCreate", { userEmail: email, firstName, lastName }, "MembershipApi");
117
+ const person = await ApiHelper.post("/people/loadOrCreate", { churchId: props.churchId, firstName, lastName, email }, "MembershipApi");
118
+ await processDonation(person);
119
+ }
108
120
  }
109
121
  catch (ex) {
110
122
  setErrors([ex.toString()]);
@@ -115,7 +127,7 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
115
127
  const compactFunds = fundDonations
116
128
  .filter(fd => (fd.amount || 0) > 0 && fd.fundId)
117
129
  .map(fd => ({ id: fd.fundId, amount: fd.amount || 0 }));
118
- const personPayload = { id: person?.id || "", email: person?.contactInfo?.email || email, name: person?.name?.display || `${firstName} ${lastName}` };
130
+ const personPayload = { id: person?.id || "", email: person?.contactInfo?.email || email, name: anonymous ? "" : (person?.name?.display || `${firstName} ${lastName}`) };
119
131
  let reference;
120
132
  try {
121
133
  const result = await openPaystackPopup({
@@ -143,7 +155,8 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
143
155
  notes,
144
156
  church: { name: church?.name || "", subDomain: church?.subDomain || "", churchURL: typeof window !== "undefined" ? window.location.origin : "", logo: props?.churchLogo || "" },
145
157
  type: "card",
146
- id: reference
158
+ id: reference,
159
+ anonymous
147
160
  };
148
161
  if (donationType === "recurring") {
149
162
  payload.billing_cycle_anchor = startDate ? +new Date(startDate) : +new Date();
@@ -202,8 +215,8 @@ export const PaystackNonAuthDonationInner = ({ mainContainerCssProps, showHeader
202
215
  useEffect(init, []);
203
216
  if (donationComplete)
204
217
  return _jsx(Alert, { severity: "success", children: Locale.label("donation.donationForm.thankYou") });
205
- return (_jsxs(InputBox, { headerIcon: showHeader ? "volunteer_activism" : "", headerText: showHeader ? Locale.label("donation.donationForm.donate") : "", saveFunction: handleSave, saveText: Locale.label("donation.donationForm.donate"), isSubmitting: processing, mainContainerCssProps: mainContainerCssProps, children: [_jsx(ErrorMessages, { errors: errors }), _jsxs(Grid, { container: true, spacing: 3, children: [props.allowRecurring !== false && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "single-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "once" ? "contained" : "outlined", onClick: () => setDonationType("once"), children: Locale.label("donation.donationForm.make") }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "recurring-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "recurring" ? "contained" : "outlined", onClick: () => setDonationType("recurring"), children: Locale.label("donation.donationForm.makeRecurring") }) })] })), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.firstName"), name: "firstName", value: firstName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.lastName"), name: "lastName", value: lastName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.email"), name: "email", value: email, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(ReCAPTCHA, { sitekey: props.recaptchaSiteKey, ref: captchaRef, onChange: handleCaptchaChange, onExpired: () => setCaptchaResponse(""), onErrored: () => setCaptchaResponse("error") }) })] }), gateway?.publicKey
218
+ return (_jsxs(InputBox, { headerIcon: showHeader ? "volunteer_activism" : "", headerText: showHeader ? Locale.label("donation.donationForm.donate") : "", saveFunction: handleSave, saveText: Locale.label("donation.donationForm.donate"), isSubmitting: processing, mainContainerCssProps: mainContainerCssProps, children: [_jsx(ErrorMessages, { errors: errors }), _jsxs(Grid, { container: true, spacing: 3, children: [props.allowRecurring !== false && !anonymous && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "single-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "once" ? "contained" : "outlined", onClick: () => setDonationType("once"), children: Locale.label("donation.donationForm.make") }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "recurring-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "recurring" ? "contained" : "outlined", onClick: () => setDonationType("recurring"), children: Locale.label("donation.donationForm.makeRecurring") }) })] })), !anonymous && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.firstName"), name: "firstName", value: firstName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.lastName"), name: "lastName", value: lastName, onChange: handleChange }) })] })), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.email"), name: "email", value: email, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(ReCAPTCHA, { sitekey: props.recaptchaSiteKey, ref: captchaRef, onChange: handleCaptchaChange, onExpired: () => setCaptchaResponse(""), onErrored: () => setCaptchaResponse("error") }) })] }), gateway?.publicKey
206
219
  ? _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 2 }, "data-testid": "paystack-entry", children: Locale.label("donation.paystack.popupHint") })
207
- : _jsx(Alert, { severity: "warning", sx: { mt: 2 }, children: Locale.label("donation.kingdomFunding.gatewayConfigMissing") }), donationType === "recurring" && (_jsxs(Grid, { container: true, spacing: 3, style: { marginTop: 16 }, children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsxs(FormControl, { fullWidth: true, children: [_jsx(InputLabel, { children: Locale.label("donation.donationForm.frequency") }), _jsxs(Select, { label: "Frequency", name: "interval", "aria-label": "interval", value: interval, onChange: (e) => setInterval(e.target.value), children: [_jsx(MenuItem, { value: "one_week", children: Locale.label("donation.donationForm.weekly") }), _jsx(MenuItem, { value: "one_month", children: Locale.label("donation.donationForm.monthly") }), _jsx(MenuItem, { value: "three_month", children: Locale.label("donation.donationForm.quarterly") }), _jsx(MenuItem, { value: "one_year", children: Locale.label("donation.donationForm.annually") })] })] }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, type: "date", name: "startDate", "aria-label": "startDate", label: Locale.label("donation.donationForm.startDate"), value: DateHelper.formatHtml5Date(startDate ? new Date(startDate) : new Date()), onChange: handleChange }) })] })), funds.length > 0 && props.showFundSelector !== false && (_jsxs(_Fragment, { children: [_jsx("hr", {}), _jsx("h4", { children: Locale.label("donation.donationForm.funds") }), _jsx(FundDonations, { fundDonations: fundDonations, funds: funds, params: searchParams, updatedFunction: handleFundDonationsChange })] })), _jsx(TextField, { fullWidth: true, label: Locale.label("donation.kingdomFunding.memo"), multiline: true, "aria-label": "note", name: "notes", value: notes, onChange: handleChange, style: { marginTop: 10, marginBottom: 10 } }), fundsTotal > 0 && (_jsxs("div", { children: [gateway?.payFees === true ? (_jsxs(Typography, { fontSize: 14, fontStyle: "italic", children: ["*", Locale.label("donation.donationForm.fees").replace("{}", fmt(transactionFee))] })) : (_jsx(FormGroup, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: coverFees }), name: "transaction-fee", label: Locale.label("donation.donationForm.cover").replace("{}", fmt(transactionFee)), onChange: handleCheckChange }) })), _jsxs("p", { children: [Locale.label("donation.donationForm.total"), ": ", fmt(total)] })] }))] }));
220
+ : _jsx(Alert, { severity: "warning", sx: { mt: 2 }, children: Locale.label("donation.kingdomFunding.gatewayConfigMissing") }), donationType === "recurring" && (_jsxs(Grid, { container: true, spacing: 3, style: { marginTop: 16 }, children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsxs(FormControl, { fullWidth: true, children: [_jsx(InputLabel, { children: Locale.label("donation.donationForm.frequency") }), _jsxs(Select, { label: "Frequency", name: "interval", "aria-label": "interval", value: interval, onChange: (e) => setInterval(e.target.value), children: [_jsx(MenuItem, { value: "one_week", children: Locale.label("donation.donationForm.weekly") }), _jsx(MenuItem, { value: "one_month", children: Locale.label("donation.donationForm.monthly") }), _jsx(MenuItem, { value: "three_month", children: Locale.label("donation.donationForm.quarterly") }), _jsx(MenuItem, { value: "one_year", children: Locale.label("donation.donationForm.annually") })] })] }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, type: "date", name: "startDate", "aria-label": "startDate", label: Locale.label("donation.donationForm.startDate"), value: DateHelper.formatHtml5Date(startDate ? new Date(startDate) : new Date()), onChange: handleChange }) })] })), funds.length > 0 && props.showFundSelector !== false && (_jsxs(_Fragment, { children: [_jsx("hr", {}), _jsx("h4", { children: Locale.label("donation.donationForm.funds") }), _jsx(FundDonations, { fundDonations: fundDonations, funds: funds, params: searchParams, updatedFunction: handleFundDonationsChange })] })), _jsx(TextField, { fullWidth: true, label: Locale.label("donation.kingdomFunding.memo"), multiline: true, "aria-label": "note", name: "notes", value: notes, onChange: handleChange, style: { marginTop: 10, marginBottom: 10 } }), _jsx(FormGroup, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: anonymous, inputProps: { "aria-label": "anonymous" } }), name: "anonymous", label: Locale.label("donation.donationForm.anonymous"), onChange: handleAnonymousChange }) }), fundsTotal > 0 && (_jsxs("div", { children: [gateway?.payFees === true ? (_jsxs(Typography, { fontSize: 14, fontStyle: "italic", children: ["*", Locale.label("donation.donationForm.fees").replace("{}", fmt(transactionFee))] })) : (_jsx(FormGroup, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: coverFees }), name: "transaction-fee", label: Locale.label("donation.donationForm.cover").replace("{}", fmt(transactionFee)), onChange: handleCheckChange }) })), _jsxs("p", { children: [Locale.label("donation.donationForm.total"), ": ", fmt(total)] })] }))] }));
208
221
  };
209
222
  //# sourceMappingURL=PaystackNonAuthDonationInner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaystackNonAuthDonationInner.js","sourceRoot":"","sources":["../../../../src/donations/providers/paystack/PaystackNonAuthDonationInner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaystackNonAuthDonationInner.js","sourceRoot":"","sources":["../../../../src/donations/providers/paystack/PaystackNonAuthDonationInner.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { Stripe } from "@stripe/stripe-js";
3
+ export type WalletConfirm = (paymentMethodId: string, name: string, email: string) => Promise<boolean>;
4
+ interface Props {
5
+ stripePromise?: Promise<Stripe | null> | null;
6
+ amount: number;
7
+ currency: string;
8
+ onConfirm: WalletConfirm;
9
+ onError: (messages: string[]) => void;
10
+ }
11
+ export declare const StripeExpressCheckout: React.FC<Props>;
12
+ export {};
13
+ //# sourceMappingURL=ExpressCheckout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpressCheckout.d.ts","sourceRoot":"","sources":["../../../../src/donations/providers/stripe/ExpressCheckout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,MAAM,EAA4C,MAAM,mBAAmB,CAAC;AAI1F,MAAM,MAAM,aAAa,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvG,UAAU,KAAK;IACb,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACvC;AA0CD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgBjD,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Elements, ExpressCheckoutElement, useElements, useStripe } from "@stripe/react-stripe-js";
5
+ import { Box, Divider } from "@mui/material";
6
+ import { Locale } from "../../helpers";
7
+ const ExpressCheckoutInner = ({ onConfirm, onError }) => {
8
+ const stripe = useStripe();
9
+ const elements = useElements();
10
+ const [available, setAvailable] = useState(false);
11
+ const handleConfirm = async (event) => {
12
+ if (!stripe || !elements)
13
+ return;
14
+ const { error: submitError } = await elements.submit();
15
+ if (submitError) {
16
+ onError([submitError.message || Locale.label("donation.donationForm.walletFailed")]);
17
+ event.paymentFailed({ reason: "fail" });
18
+ return;
19
+ }
20
+ const { error, paymentMethod } = await stripe.createPaymentMethod({ elements });
21
+ if (error || !paymentMethod) {
22
+ onError([error?.message || Locale.label("donation.donationForm.walletFailed")]);
23
+ event.paymentFailed({ reason: "invalid_payment_data" });
24
+ return;
25
+ }
26
+ const success = await onConfirm(paymentMethod.id, event.billingDetails?.name || "", event.billingDetails?.email || "");
27
+ if (!success)
28
+ event.paymentFailed({ reason: "fail" });
29
+ };
30
+ return (_jsxs(_Fragment, { children: [_jsx(ExpressCheckoutElement, { options: {
31
+ emailRequired: true,
32
+ buttonHeight: 48,
33
+ paymentMethods: { link: "never", amazonPay: "never", paypal: "never", klarna: "never" }
34
+ }, onReady: (event) => setAvailable(!!event.availablePaymentMethods), onConfirm: handleConfirm }), available && _jsx(Divider, { sx: { mt: 2 }, children: Locale.label("donation.donationForm.orPayWith") })] }));
35
+ };
36
+ // Wallets need their own deferred-intent Elements group; the card fields keep the outer one.
37
+ export const StripeExpressCheckout = ({ stripePromise, amount, currency, onConfirm, onError }) => {
38
+ const lower = (currency || "usd").toLowerCase();
39
+ // Stripe wants the smallest currency unit, and zero-decimal currencies are already there.
40
+ const minorAmount = lower === "jpy" ? Math.round(amount) : Math.trunc(Math.round(amount * 100));
41
+ if (!stripePromise || minorAmount < 50)
42
+ return null;
43
+ return (_jsx(Box, { "data-testid": "express-checkout", sx: { mb: 2 }, children: _jsx(Elements, { stripe: stripePromise, options: { mode: "payment", amount: minorAmount, currency: lower, paymentMethodCreation: "manual" }, children: _jsx(ExpressCheckoutInner, { onConfirm: onConfirm, onError: onError }) }) }));
44
+ };
45
+ //# sourceMappingURL=ExpressCheckout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpressCheckout.js","sourceRoot":"","sources":["../../../../src/donations/providers/stripe/ExpressCheckout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEnG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAYvC,MAAM,oBAAoB,GAAmD,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACtG,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,KAAK,EAAE,KAA+C,EAAE,EAAE;QAC9E,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO;QACjC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC;YACrF,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC;YAChF,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACvH,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,sBAAsB,IACrB,OAAO,EAAE;oBACP,aAAa,EAAE,IAAI;oBACnB,YAAY,EAAE,EAAE;oBAChB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;iBACxF,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,EACjE,SAAS,EAAE,aAAa,GACxB,EACD,SAAS,IAAI,KAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,GAAW,IAChG,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,qBAAqB,GAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAChH,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,0FAA0F;IAC1F,MAAM,WAAW,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IAChG,IAAI,CAAC,aAAa,IAAI,WAAW,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEpD,OAAO,CACL,KAAC,GAAG,mBAAa,kBAAkB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YAC/C,KAAC,QAAQ,IACP,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAEnG,KAAC,oBAAoB,IAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAI,GACvD,GACP,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import type { PaperProps } from "@mui/material/Paper";
3
+ import type { Stripe } from "@stripe/stripe-js";
3
4
  interface Props {
4
5
  churchId: string;
5
6
  mainContainerCssProps?: PaperProps;
@@ -12,6 +13,7 @@ interface Props {
12
13
  showFundSelector?: boolean;
13
14
  allowedFundIds?: string[];
14
15
  defaultFundId?: string;
16
+ stripePromise?: Promise<Stripe | null> | null;
15
17
  }
16
18
  export declare const NonAuthDonationInner: React.FC<Props>;
17
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"NonAuthDonationInner.d.ts","sourceRoot":"","sources":["../../../../src/donations/providers/stripe/NonAuthDonationInner.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,UAAU,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAggBhD,CAAC"}
1
+ {"version":3,"file":"NonAuthDonationInner.d.ts","sourceRoot":"","sources":["../../../../src/donations/providers/stripe/NonAuthDonationInner.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,UAAU,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAolBhD,CAAC"}
@@ -6,10 +6,11 @@ import ReCAPTCHA from "react-google-recaptcha";
6
6
  import { ErrorMessages, InputBox } from "../../../index";
7
7
  import { FundDonations } from "../../components";
8
8
  import { ApiHelper, DateHelper, CurrencyHelper } from "@churchapps/helpers";
9
- import { Locale, DonationHelper } from "../../helpers";
9
+ import { Locale, DonationHelper, StripePaymentMethod } from "../../helpers";
10
10
  import { handle3DSIfRequired } from "./stripe3DS";
11
11
  import { Grid, Alert, TextField, Button, FormControl, InputLabel, Select, MenuItem, FormGroup, FormControlLabel, Checkbox, Typography, Box, CircularProgress } from "@mui/material";
12
12
  import { collectStripeBank } from "./stripeBank";
13
+ import { StripeExpressCheckout } from "./ExpressCheckout";
13
14
  export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true, ...props }) => {
14
15
  const allowSingleGift = props.allowSingleGift !== false;
15
16
  const allowRecurring = props.allowRecurring !== false;
@@ -39,6 +40,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
39
40
  const [searchParams, setSearchParams] = useState(null);
40
41
  const [notes, setNotes] = useState("");
41
42
  const [coverFees, setCoverFees] = useState(false);
43
+ const [anonymous, setAnonymous] = useState(false);
42
44
  const [bankConnecting, setBankConnecting] = useState(false);
43
45
  const captchaRef = useRef(null);
44
46
  const paymentType = props.paymentType || "card";
@@ -62,7 +64,8 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
62
64
  || (filteredFunds.length > 0 ? filteredFunds[0].id : "");
63
65
  const initialFund = filteredFunds.find((f) => f.id === preferredId);
64
66
  if (initialFund) {
65
- setFundDonations([{ fundId: initialFund.id, amount: (amount && amount !== "") ? parseFloat(amount) : 0 }]);
67
+ // go through handleFundDonationsChange so a preselected amount also updates fundsTotal/fee/total, not just the field
68
+ handleFundDonationsChange([{ fundId: initialFund.id, amount: (amount && amount !== "") ? parseFloat(amount) : 0 }]);
66
69
  }
67
70
  });
68
71
  ApiHelper.get("/churches/lookup/?id=" + props.churchId, "MembershipApi").then((data) => {
@@ -71,10 +74,25 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
71
74
  ApiHelper.get(`/donate/gateways/${props.churchId}`, "GivingApi").then((response) => {
72
75
  const gateways = Array.isArray(response?.gateways) ? response.gateways : [];
73
76
  const stripeGateway = DonationHelper.findGatewayByProvider(gateways, "stripe");
74
- if (stripeGateway)
77
+ if (stripeGateway) {
75
78
  setGateway(stripeGateway);
79
+ registerWalletDomain();
80
+ }
76
81
  });
77
82
  };
83
+ // Apple Pay only offers itself on a Stripe-verified domain; Google Pay needs nothing.
84
+ const registerWalletDomain = () => {
85
+ if (typeof window === "undefined")
86
+ return;
87
+ const key = "b1-wallet-domain-" + props.churchId + "-" + window.location.hostname;
88
+ try {
89
+ if (window.sessionStorage.getItem(key))
90
+ return;
91
+ window.sessionStorage.setItem(key, "1");
92
+ }
93
+ catch { /* storage blocked; registering again is harmless */ }
94
+ ApiHelper.postAnonymous("/donate/register-domain", { churchId: props.churchId, domain: window.location.hostname }, "GivingApi").catch(() => { });
95
+ };
78
96
  const handleCaptchaChange = (value) => {
79
97
  if (value) {
80
98
  ApiHelper.postAnonymous("/donate/captcha-verify", { token: value }, "GivingApi")
@@ -99,45 +117,57 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
99
117
  setCaptchaResponse("");
100
118
  }
101
119
  };
120
+ const handleAnonymousChange = (_e, checked) => {
121
+ setAnonymous(checked);
122
+ if (checked)
123
+ setDonationType("once");
124
+ };
102
125
  const handleCheckChange = (_e, checked) => {
103
126
  setCoverFees(checked);
104
127
  const totalPayAmount = checked ? fundsTotal + transactionFee : fundsTotal;
105
128
  setTotal(totalPayAmount);
106
129
  };
130
+ const captchaError = () => {
131
+ if (!_captchaResponse)
132
+ return "Please complete the reCAPTCHA verification";
133
+ if (_captchaResponse === "robot")
134
+ return "reCAPTCHA verification failed - detected as robot. Please try again.";
135
+ if (_captchaResponse === "error")
136
+ return "reCAPTCHA verification error. Please try again.";
137
+ if (_captchaResponse !== "success")
138
+ return `reCAPTCHA verification unexpected response: ${_captchaResponse}`;
139
+ return null;
140
+ };
107
141
  const handleSave = async () => {
108
142
  if (validate()) {
109
- if (!_captchaResponse) {
110
- setErrors(["Please complete the reCAPTCHA verification"]);
111
- return;
112
- }
113
- if (_captchaResponse === "robot") {
114
- setErrors(["reCAPTCHA verification failed - detected as robot. Please try again."]);
143
+ const captchaMessage = captchaError();
144
+ if (captchaMessage) {
145
+ setErrors([captchaMessage]);
115
146
  return;
116
147
  }
117
- if (_captchaResponse === "error") {
118
- setErrors(["reCAPTCHA verification error. Please try again."]);
119
- return;
120
- }
121
- if (_captchaResponse !== "success") {
122
- setErrors([`reCAPTCHA verification unexpected response: ${_captchaResponse}`]);
148
+ setProcessing(true);
149
+ if (anonymous) {
150
+ if (paymentType === "bank")
151
+ saveBank();
152
+ else
153
+ saveCard();
123
154
  return;
124
155
  }
125
- setProcessing(true);
126
156
  ApiHelper.post("/users/loadOrCreate", { userEmail: email, firstName, lastName }, "MembershipApi")
127
157
  .catch((ex) => { setErrors([ex.toString()]); setProcessing(false); })
128
- .then(async (userData) => {
158
+ .then(async () => {
129
159
  const personData = { churchId: props.churchId, firstName, lastName, email };
130
160
  const person = await ApiHelper.post("/people/loadOrCreate", personData, "MembershipApi");
131
161
  if (paymentType === "bank") {
132
- saveBank(userData, person);
162
+ saveBank(person);
133
163
  }
134
164
  else {
135
- saveCard(userData, person);
165
+ saveCard(person);
136
166
  }
137
167
  });
138
168
  }
139
169
  };
140
- const saveCard = async (_user, person) => {
170
+ const saveCard = async (person) => {
141
171
  if (gateway?.provider?.toLowerCase() !== "stripe") {
142
172
  setErrors(["Stripe payment processing not available for this gateway"]);
143
173
  setProcessing(false);
@@ -154,8 +184,12 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
154
184
  setErrors([stripePM.error.message || "Payment method error"]);
155
185
  setProcessing(false);
156
186
  }
187
+ else if (anonymous) {
188
+ // Nothing is vaulted for an anonymous gift, so the payment method is charged without a customer.
189
+ saveDonation(new StripePaymentMethod({ id: stripePM.paymentMethod.id, type: "card" }));
190
+ }
157
191
  else {
158
- const pm = { id: stripePM.paymentMethod.id, personId: person.id, email: email, name: person?.name?.display || "", churchId: props.churchId };
192
+ const pm = { id: stripePM.paymentMethod.id, personId: person?.id, email: email, name: person?.name?.display || "", churchId: props.churchId };
159
193
  await ApiHelper.post("/paymentmethods/addcard", { ...pm, provider: gateway?.provider || "stripe", gatewayId: gateway?.id }, "GivingApi").then((result) => {
160
194
  if (result?.raw?.message) {
161
195
  setErrors([result.raw.message]);
@@ -168,7 +202,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
168
202
  });
169
203
  }
170
204
  };
171
- const saveBank = async (_user, person) => {
205
+ const saveBank = async (person) => {
172
206
  if (!stripe) {
173
207
  setErrors(["Payment processing unavailable"]);
174
208
  setProcessing(false);
@@ -179,7 +213,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
179
213
  // Get ACH setup intent from anonymous endpoint
180
214
  const setupResponse = await ApiHelper.postAnonymous("/paymentmethods/ach-setup-intent-anon", {
181
215
  email,
182
- name: `${firstName} ${lastName}`,
216
+ name: anonymous ? "Anonymous Donor" : `${firstName} ${lastName}`,
183
217
  churchId: props.churchId,
184
218
  gatewayId: gateway?.id
185
219
  }, "GivingApi");
@@ -189,7 +223,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
189
223
  setBankConnecting(false);
190
224
  return;
191
225
  }
192
- const { error: confirmError, setupIntent } = await collectStripeBank(stripe, setupResponse.clientSecret, gateway?.currency, { name: `${firstName} ${lastName}`, email });
226
+ const { error: confirmError, setupIntent } = await collectStripeBank(stripe, setupResponse.clientSecret, gateway?.currency, { name: anonymous ? "Anonymous Donor" : `${firstName} ${lastName}`, email });
193
227
  if (confirmError) {
194
228
  setErrors([confirmError.message || "Failed to confirm bank account"]);
195
229
  setProcessing(false);
@@ -206,7 +240,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
206
240
  funds: fundDonations.map(fd => ({ id: fd.fundId || "", amount: fd.amount || 0 })),
207
241
  person: {
208
242
  id: person?.id || "",
209
- email: person?.contactInfo?.email || "",
243
+ email: person?.contactInfo?.email || email,
210
244
  name: person?.name?.display || ""
211
245
  },
212
246
  notes
@@ -222,7 +256,8 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
222
256
  church: churchObj,
223
257
  provider: "stripe",
224
258
  gatewayId: gateway?.id,
225
- currency: gateway?.currency || "USD"
259
+ currency: gateway?.currency || "USD",
260
+ anonymous
226
261
  }, "GivingApi");
227
262
  if (results?.status === "succeeded" || results?.status === "pending" || results?.status === "processing") {
228
263
  setDonationComplete(true);
@@ -237,7 +272,53 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
237
272
  setProcessing(false);
238
273
  setBankConnecting(false);
239
274
  };
240
- const saveDonation = async (paymentMethod, customerId, person) => {
275
+ // Wallet sheets supply the donor's name and email, so the form fields above stay optional here.
276
+ const handleWalletConfirm = async (paymentMethodId, walletName, walletEmail) => {
277
+ const donorEmail = walletEmail || email;
278
+ if (!donorEmail) {
279
+ setErrors([Locale.label("donation.donationForm.validate.email")]);
280
+ return false;
281
+ }
282
+ const captchaMessage = captchaError();
283
+ if (captchaMessage) {
284
+ setErrors([captchaMessage]);
285
+ return false;
286
+ }
287
+ setProcessing(true);
288
+ setErrors([]);
289
+ const nameParts = (walletName || `${firstName} ${lastName}`).trim().split(/\s+/);
290
+ const donorFirst = firstName || nameParts[0] || "";
291
+ const donorLast = lastName || nameParts.slice(1).join(" ") || "";
292
+ try {
293
+ if (anonymous) {
294
+ // Nothing is vaulted for an anonymous gift, so the wallet payment method is charged without a customer or person.
295
+ return await saveDonation(new StripePaymentMethod({ id: paymentMethodId, type: "card" }), undefined, undefined, donorEmail);
296
+ }
297
+ await ApiHelper.post("/users/loadOrCreate", { userEmail: donorEmail, firstName: donorFirst, lastName: donorLast }, "MembershipApi");
298
+ const person = await ApiHelper.post("/people/loadOrCreate", { churchId: props.churchId, firstName: donorFirst, lastName: donorLast, email: donorEmail }, "MembershipApi");
299
+ const result = await ApiHelper.post("/paymentmethods/addcard", {
300
+ id: paymentMethodId,
301
+ personId: person.id,
302
+ email: donorEmail,
303
+ name: person?.name?.display || "",
304
+ churchId: props.churchId,
305
+ provider: gateway?.provider || "stripe",
306
+ gatewayId: gateway?.id
307
+ }, "GivingApi");
308
+ if (result?.raw?.message) {
309
+ setErrors([result.raw.message]);
310
+ setProcessing(false);
311
+ return false;
312
+ }
313
+ return await saveDonation(result.paymentMethod, result.customerId, person);
314
+ }
315
+ catch (ex) {
316
+ setErrors([ex?.message || ex?.toString() || "An unexpected error occurred. Please try again."]);
317
+ setProcessing(false);
318
+ return false;
319
+ }
320
+ };
321
+ const saveDonation = async (paymentMethod, customerId, person, receiptEmail) => {
241
322
  const donation = {
242
323
  amount: total,
243
324
  id: paymentMethod.id,
@@ -247,7 +328,7 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
247
328
  funds: [],
248
329
  person: {
249
330
  id: person?.id || "",
250
- email: person?.contactInfo?.email || "",
331
+ email: person?.contactInfo?.email || receiptEmail || email,
251
332
  name: person?.name?.display || ""
252
333
  },
253
334
  notes: notes
@@ -273,7 +354,8 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
273
354
  church: churchObj,
274
355
  provider: gateway?.provider || "stripe",
275
356
  gatewayId: gateway?.id,
276
- currency: gateway?.currency || "USD"
357
+ currency: gateway?.currency || "USD",
358
+ anonymous
277
359
  };
278
360
  if (donationType === "once")
279
361
  results = await ApiHelper.post("/donate/charge", donationPayload, "GivingApi");
@@ -289,12 +371,14 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
289
371
  setErrors([threeDSResult.error || "Authentication failed."]);
290
372
  }
291
373
  setProcessing(false);
292
- return;
374
+ return threeDSResult.success;
293
375
  }
376
+ let succeeded = true;
294
377
  if (results?.status === "succeeded" || results?.status === "pending" || results?.status === "active" || results?.status === "processing") {
295
378
  setDonationComplete(true);
296
379
  }
297
380
  else {
381
+ succeeded = false;
298
382
  // Handle any error case
299
383
  if (results?.raw?.message) {
300
384
  setErrors([results?.raw?.message]);
@@ -307,12 +391,13 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
307
391
  }
308
392
  }
309
393
  setProcessing(false);
394
+ return succeeded;
310
395
  };
311
396
  const validate = () => {
312
397
  const result = [];
313
- if (!firstName)
398
+ if (!anonymous && !firstName)
314
399
  result.push(Locale.label("donation.donationForm.validate.firstName"));
315
- if (!lastName)
400
+ if (!anonymous && !lastName)
316
401
  result.push(Locale.label("donation.donationForm.validate.lastName"));
317
402
  if (!email)
318
403
  result.push(Locale.label("donation.donationForm.validate.email"));
@@ -394,12 +479,12 @@ export const NonAuthDonationInner = ({ mainContainerCssProps, showHeader = true,
394
479
  if (donationComplete)
395
480
  return _jsx(Alert, { severity: "success", children: Locale.label("donation.donationForm.thankYou") });
396
481
  else {
397
- return (_jsxs(InputBox, { headerIcon: showHeader ? "volunteer_activism" : "", headerText: showHeader ? "Donate" : "", saveFunction: handleSave, saveText: "Donate", isSubmitting: processing || bankConnecting, mainContainerCssProps: mainContainerCssProps, children: [_jsx(ErrorMessages, { errors: errors }), _jsxs(Grid, { container: true, spacing: 3, children: [paymentType !== "bank" && allowSingleGift && allowRecurring && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "single-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "once" ? "contained" : "outlined", onClick: () => setDonationType("once"), children: Locale.label("donation.donationForm.make") }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "recurring-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "recurring" ? "contained" : "outlined", onClick: () => setDonationType("recurring"), children: Locale.label("donation.donationForm.makeRecurring") }) })] })), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.firstName"), name: "firstName", value: firstName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.lastName"), name: "lastName", value: lastName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.email"), name: "email", value: email, onChange: handleChange }) }), !bypassRecaptcha && (_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(ReCAPTCHA, { sitekey: props.recaptchaSiteKey, ref: captchaRef, onChange: handleCaptchaChange, onExpired: () => {
482
+ return (_jsxs(InputBox, { headerIcon: showHeader ? "volunteer_activism" : "", headerText: showHeader ? "Donate" : "", saveFunction: handleSave, saveText: "Donate", isSubmitting: processing || bankConnecting, mainContainerCssProps: mainContainerCssProps, children: [_jsx(ErrorMessages, { errors: errors }), donationType === "once" && total > 0 && gateway?.provider?.toLowerCase() === "stripe" && (_jsx(StripeExpressCheckout, { stripePromise: props.stripePromise, amount: total, currency: gateway?.currency || "USD", onConfirm: handleWalletConfirm, onError: setErrors })), _jsxs(Grid, { container: true, spacing: 3, children: [paymentType !== "bank" && allowSingleGift && allowRecurring && !anonymous && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "single-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "once" ? "contained" : "outlined", onClick: () => setDonationType("once"), children: Locale.label("donation.donationForm.make") }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(Button, { "aria-label": "recurring-donation", size: "small", fullWidth: true, style: { minHeight: "50px" }, variant: donationType === "recurring" ? "contained" : "outlined", onClick: () => setDonationType("recurring"), children: Locale.label("donation.donationForm.makeRecurring") }) })] })), !anonymous && (_jsxs(_Fragment, { children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.firstName"), name: "firstName", value: firstName, onChange: handleChange }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.lastName"), name: "lastName", value: lastName, onChange: handleChange }) })] })), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, label: Locale.label("person.email"), name: "email", value: email, onChange: handleChange }) }), !bypassRecaptcha && (_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(ReCAPTCHA, { sitekey: props.recaptchaSiteKey, ref: captchaRef, onChange: handleCaptchaChange, onExpired: () => {
398
483
  setCaptchaResponse("");
399
484
  }, onErrored: () => {
400
485
  setCaptchaResponse("error");
401
486
  } }) }))] }), gateway?.provider?.toLowerCase() === "stripe" && paymentType === "bank" ? (_jsxs(Box, { sx: { textAlign: "center", py: 3, px: 2, mt: 2, border: "1px solid #CCC", borderRadius: 1 }, children: [_jsx(Typography, { variant: "body1", sx: { mb: 2 }, children: "Securely connect your bank account using Stripe Financial Connections." }), _jsx(Typography, { variant: "body2", color: "text.secondary", children: "You'll log in to your bank to authorize the connection. Your credentials are never shared." }), bankConnecting && (_jsxs(Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 2, mt: 2 }, children: [_jsx(CircularProgress, { size: 24 }), _jsx(Typography, { children: "Connecting to your bank..." })] }))] })) : gateway?.provider?.toLowerCase() === "stripe" && (_jsxs(Grid, { container: true, spacing: 3, style: { marginTop: 10 }, children: [_jsx(Grid, { size: 12, children: _jsx("div", { style: { padding: 10, border: "1px solid #CCC", borderRadius: 5 }, children: _jsx(CardNumberElement, { options: formStyling }) }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx("div", { style: { padding: 10, border: "1px solid #CCC", borderRadius: 5 }, children: _jsx(CardExpiryElement, { options: formStyling }) }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx("div", { style: { padding: 10, border: "1px solid #CCC", borderRadius: 5 }, children: _jsx(CardCvcElement, { options: formStyling }) }) })] })), donationType === "recurring" && paymentType !== "bank"
402
- && _jsxs(Grid, { container: true, spacing: 3, style: { marginTop: 0 }, children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsxs(FormControl, { fullWidth: true, children: [_jsx(InputLabel, { children: Locale.label("donation.donationForm.frequency") }), _jsxs(Select, { label: "Frequency", name: "interval", "aria-label": "interval", value: interval, onChange: (e) => { setInterval(e.target.value); }, children: [_jsx(MenuItem, { value: "one_week", children: Locale.label("donation.donationForm.weekly") }), _jsx(MenuItem, { value: "two_week", children: Locale.label("donation.donationForm.biWeekly") }), _jsx(MenuItem, { value: "one_month", children: Locale.label("donation.donationForm.monthly") }), _jsx(MenuItem, { value: "three_month", children: Locale.label("donation.donationForm.quarterly") }), _jsx(MenuItem, { value: "one_year", children: Locale.label("donation.donationForm.annually") })] })] }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, name: "startDate", type: "date", "aria-label": "startDate", label: Locale.label("donation.donationForm.startDate"), value: DateHelper.formatHtml5Date(startDate ? new Date(startDate) : new Date()), onChange: handleChange }) })] }), getFundList(), _jsx(TextField, { fullWidth: true, label: "Memo (optional)", multiline: true, "aria-label": "note", name: "notes", value: notes, onChange: handleChange, style: { marginTop: 10, marginBottom: 10 } }), _jsx("div", { children: fundsTotal > 0
487
+ && _jsxs(Grid, { container: true, spacing: 3, style: { marginTop: 0 }, children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsxs(FormControl, { fullWidth: true, children: [_jsx(InputLabel, { children: Locale.label("donation.donationForm.frequency") }), _jsxs(Select, { label: "Frequency", name: "interval", "aria-label": "interval", value: interval, onChange: (e) => { setInterval(e.target.value); }, children: [_jsx(MenuItem, { value: "one_week", children: Locale.label("donation.donationForm.weekly") }), _jsx(MenuItem, { value: "two_week", children: Locale.label("donation.donationForm.biWeekly") }), _jsx(MenuItem, { value: "one_month", children: Locale.label("donation.donationForm.monthly") }), _jsx(MenuItem, { value: "three_month", children: Locale.label("donation.donationForm.quarterly") }), _jsx(MenuItem, { value: "one_year", children: Locale.label("donation.donationForm.annually") })] })] }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx(TextField, { fullWidth: true, name: "startDate", type: "date", "aria-label": "startDate", label: Locale.label("donation.donationForm.startDate"), value: DateHelper.formatHtml5Date(startDate ? new Date(startDate) : new Date()), onChange: handleChange }) })] }), getFundList(), _jsx(TextField, { fullWidth: true, label: "Memo (optional)", multiline: true, "aria-label": "note", name: "notes", value: notes, onChange: handleChange, style: { marginTop: 10, marginBottom: 10 } }), _jsx(FormGroup, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: anonymous, inputProps: { "aria-label": "anonymous" } }), name: "anonymous", label: Locale.label("donation.donationForm.anonymous"), onChange: handleAnonymousChange }) }), _jsx("div", { children: fundsTotal > 0
403
488
  && _jsxs(_Fragment, { children: [(gateway?.payFees === true)
404
489
  ? _jsxs(Typography, { fontSize: 14, fontStyle: "italic", children: ["*", Locale.label("donation.donationForm.fees").replace("{}", CurrencyHelper.formatCurrencyWithLocale(transactionFee, gateway?.currency || "USD"))] })
405
490
  : (_jsx(FormGroup, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: coverFees }), name: "transaction-fee", label: Locale.label("donation.donationForm.cover").replace("{}", CurrencyHelper.formatCurrencyWithLocale(transactionFee, gateway?.currency || "USD")), onChange: handleCheckChange }) })), _jsxs("p", { children: ["Total Donation Amount: ", CurrencyHelper.formatCurrencyWithLocale(total, gateway?.currency || "USD")] })] }) })] }));