@saasquatch/mint-components 1.13.3-9 → 1.13.4
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.
- package/dist/cjs/{ShadowViewAddon-3ddee92b.js → ShadowViewAddon-14a02da4.js} +138 -104
- package/dist/cjs/{useReferralCodes-82e8797b.js → copy-text-view-a5524c20.js} +93 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/sqm-banking-info-form_17.cjs.entry.js +2 -3
- package/dist/cjs/{sqm-big-stat_39.cjs.entry.js → sqm-big-stat_41.cjs.entry.js} +221 -4
- package/dist/cjs/{sqm-invoice-table-view-16ac73d0.js → sqm-invoice-table-view-baded4af.js} +31 -2
- package/dist/cjs/sqm-pagination_3.cjs.entry.js +5 -6
- package/dist/cjs/sqm-portal-email-verification.cjs.entry.js +1 -1
- package/dist/cjs/sqm-portal-forgot-password.cjs.entry.js +1 -1
- package/dist/cjs/sqm-portal-google-registration-form.cjs.entry.js +1 -1
- package/dist/cjs/{sqm-portal-registration-form-view-ebf355a6.js → sqm-portal-registration-form-view-637a4bf4.js} +1 -0
- package/dist/cjs/sqm-portal-registration-form.cjs.entry.js +2 -1
- package/dist/cjs/sqm-portal-reset-password.cjs.entry.js +1 -1
- package/dist/cjs/sqm-portal-verify-email.cjs.entry.js +1 -1
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +470 -431
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/sqm-checkbox-field/CheckboxField.stories.js +1 -1
- package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field-view.js +6 -15
- package/dist/collection/components/sqm-checkbox-field/sqm-checkbox-field.js +5 -5
- package/dist/collection/components/sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories.js +11 -0
- package/dist/collection/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.js +129 -0
- package/dist/collection/components/sqm-portal-change-marketing/ChangeMarketing.stories.js +54 -0
- package/dist/collection/components/sqm-portal-change-marketing/sqm-portal-change-marketing-view.js +47 -0
- package/dist/collection/components/sqm-portal-change-marketing/sqm-portal-change-marketing.js +217 -0
- package/dist/collection/components/sqm-portal-change-marketing/usePortalChangeMarketing.js +115 -0
- package/dist/collection/components/sqm-portal-email-verification/sqm-portal-email-verification.js +3 -3
- package/dist/collection/components/sqm-portal-forgot-password/sqm-portal-forgot-password.js +3 -3
- package/dist/collection/components/sqm-portal-google-registration-form/sqm-portal-google-registration-form.js +2 -2
- package/dist/collection/components/sqm-portal-login/sqm-portal-login.js +3 -3
- package/dist/collection/components/sqm-portal-registration-form/PortalRegistrationForm.stories.js +4 -0
- package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form-view.js +1 -0
- package/dist/collection/components/sqm-portal-registration-form/sqm-portal-registration-form.js +3 -2
- package/dist/collection/components/sqm-portal-reset-password/sqm-portal-reset-password.js +3 -3
- package/dist/collection/components/sqm-portal-verify-email/sqm-portal-verify-email.js +3 -3
- package/dist/collection/components/sqm-stencilbook/sqm-stencilbook.js +6 -2
- package/dist/collection/components/sqm-titled-section/sqm-titled-section.js +3 -0
- package/dist/esm/{ShadowViewAddon-499b1f86.js → ShadowViewAddon-23a6afab.js} +134 -101
- package/dist/esm/{useReferralCodes-8f75921a.js → copy-text-view-459a2e35.js} +93 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/sqm-banking-info-form_17.entry.js +1 -2
- package/dist/esm/{sqm-big-stat_39.entry.js → sqm-big-stat_41.entry.js} +220 -5
- package/dist/esm/{sqm-invoice-table-view-2c726568.js → sqm-invoice-table-view-af69cd33.js} +30 -2
- package/dist/esm/sqm-pagination_3.entry.js +1 -2
- package/dist/esm/sqm-portal-email-verification.entry.js +1 -1
- package/dist/esm/sqm-portal-forgot-password.entry.js +1 -1
- package/dist/esm/sqm-portal-google-registration-form.entry.js +1 -1
- package/dist/esm/{sqm-portal-registration-form-view-32c4b488.js → sqm-portal-registration-form-view-3c1f6000.js} +1 -0
- package/dist/esm/sqm-portal-registration-form.entry.js +2 -1
- package/dist/esm/sqm-portal-reset-password.entry.js +1 -1
- package/dist/esm/sqm-portal-verify-email.entry.js +1 -1
- package/dist/esm/sqm-stencilbook.entry.js +470 -431
- package/dist/esm-es5/ShadowViewAddon-23a6afab.js +1 -0
- package/dist/esm-es5/copy-text-view-459a2e35.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mint-components.js +1 -1
- package/dist/esm-es5/sqm-banking-info-form_17.entry.js +1 -1
- package/dist/esm-es5/sqm-big-stat_41.entry.js +1 -0
- package/dist/esm-es5/sqm-invoice-table-view-af69cd33.js +1 -0
- package/dist/esm-es5/sqm-pagination_3.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-google-registration-form.entry.js +1 -1
- package/dist/esm-es5/{sqm-portal-registration-form-view-32c4b488.js → sqm-portal-registration-form-view-3c1f6000.js} +1 -1
- package/dist/esm-es5/sqm-portal-registration-form.entry.js +1 -1
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-01010af0.entry.js +258 -0
- package/dist/mint-components/{p-079405ff.entry.js → p-0d2d0b6d.entry.js} +1 -1
- package/dist/mint-components/p-33ed6f1c.system.entry.js +1 -0
- package/dist/mint-components/p-37996351.system.js +1 -1
- package/dist/mint-components/p-38b5f028.system.entry.js +1 -0
- package/dist/mint-components/p-717cc8ac.system.js +1 -0
- package/dist/mint-components/p-71bc04d2.system.entry.js +1 -0
- package/dist/mint-components/p-7e7cbccf.system.js +1 -0
- package/dist/mint-components/p-7f2d4212.js +52 -0
- package/dist/mint-components/{p-e6045498.entry.js → p-7f80a9d7.entry.js} +1 -1
- package/dist/mint-components/{p-793d2130.js → p-91ab3da1.js} +1 -1
- package/dist/mint-components/p-9320582e.system.js +1 -0
- package/dist/mint-components/{p-51d3cde7.system.entry.js → p-9386ad84.system.entry.js} +1 -1
- package/dist/mint-components/p-962f3200.js +1 -0
- package/dist/mint-components/{p-54adee71.system.entry.js → p-9bfd9bed.system.entry.js} +1 -1
- package/dist/mint-components/{p-7846937e.entry.js → p-b51e79b3.entry.js} +2 -2
- package/dist/mint-components/p-b93fd99c.system.entry.js +1 -0
- package/dist/mint-components/p-d3d74266.js +394 -0
- package/dist/mint-components/{p-bb0f585c.system.js → p-e5d0375e.system.js} +1 -1
- package/dist/mint-components/{p-012af236.entry.js → p-f29eda2f.entry.js} +4 -4
- package/dist/mint-components/p-f2cc6a6f.entry.js +9 -0
- package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field-view.d.ts +1 -1
- package/dist/types/components/sqm-checkbox-field/sqm-checkbox-field.d.ts +4 -4
- package/dist/types/components/sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories.d.ts +8 -0
- package/dist/types/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.d.ts +27 -0
- package/dist/types/components/{sqm-qr-code/QRCode.stories.d.ts → sqm-portal-change-marketing/ChangeMarketing.stories.d.ts} +2 -2
- package/dist/types/components/sqm-portal-change-marketing/sqm-portal-change-marketing-view.d.ts +28 -0
- package/dist/types/components/sqm-portal-change-marketing/sqm-portal-change-marketing.d.ts +39 -0
- package/dist/types/components/sqm-portal-change-marketing/usePortalChangeMarketing.d.ts +3 -0
- package/dist/types/components/sqm-portal-email-verification/sqm-portal-email-verification.d.ts +1 -1
- package/dist/types/components/sqm-portal-forgot-password/sqm-portal-forgot-password.d.ts +1 -1
- package/dist/types/components/sqm-portal-login/sqm-portal-login.d.ts +1 -1
- package/dist/types/components/sqm-portal-registration-form/PortalRegistrationForm.stories.d.ts +1 -0
- package/dist/types/components/sqm-portal-registration-form/sqm-portal-registration-form-view.d.ts +1 -0
- package/dist/types/components/sqm-portal-registration-form/sqm-portal-registration-form.d.ts +1 -1
- package/dist/types/components/sqm-portal-reset-password/sqm-portal-reset-password.d.ts +1 -1
- package/dist/types/components/sqm-portal-verify-email/sqm-portal-verify-email.d.ts +1 -1
- package/dist/types/components/sqm-titled-section/sqm-titled-section.d.ts +1 -0
- package/dist/types/components.d.ts +132 -85
- package/docs/docs.docx +0 -0
- package/docs/raisins.json +1 -1
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/ErrorView-b2fcf954.js +0 -35
- package/dist/cjs/copy-text-view-c85acaaa.js +0 -96
- package/dist/cjs/sqm-qr-code-view-82b14685.js +0 -89
- package/dist/cjs/sqm-qr-code.cjs.entry.js +0 -199
- package/dist/collection/components/sqm-qr-code/QRCode.stories.js +0 -37
- package/dist/collection/components/sqm-qr-code/sqm-qr-code-view.js +0 -84
- package/dist/collection/components/sqm-qr-code/sqm-qr-code.js +0 -229
- package/dist/collection/components/sqm-qr-code/useQRCode.js +0 -129
- package/dist/esm/ErrorView-48e2b969.js +0 -33
- package/dist/esm/copy-text-view-782137ba.js +0 -94
- package/dist/esm/sqm-qr-code-view-2dff1823.js +0 -87
- package/dist/esm/sqm-qr-code.entry.js +0 -195
- package/dist/esm-es5/ErrorView-48e2b969.js +0 -1
- package/dist/esm-es5/ShadowViewAddon-499b1f86.js +0 -1
- package/dist/esm-es5/copy-text-view-782137ba.js +0 -1
- package/dist/esm-es5/sqm-big-stat_39.entry.js +0 -1
- package/dist/esm-es5/sqm-invoice-table-view-2c726568.js +0 -1
- package/dist/esm-es5/sqm-qr-code-view-2dff1823.js +0 -1
- package/dist/esm-es5/sqm-qr-code.entry.js +0 -1
- package/dist/esm-es5/useReferralCodes-8f75921a.js +0 -1
- package/dist/mint-components/p-31015791.js +0 -1
- package/dist/mint-components/p-31c73e3a.system.entry.js +0 -1
- package/dist/mint-components/p-3a62a7e2.system.js +0 -1
- package/dist/mint-components/p-3b90e01b.system.js +0 -1
- package/dist/mint-components/p-3edc9c8a.entry.js +0 -9
- package/dist/mint-components/p-3f067fd5.js +0 -1
- package/dist/mint-components/p-3f7b81b8.js +0 -52
- package/dist/mint-components/p-4f6bb357.system.js +0 -1
- package/dist/mint-components/p-5afd7e38.system.entry.js +0 -1
- package/dist/mint-components/p-5cb7f9fc.system.entry.js +0 -1
- package/dist/mint-components/p-7c434c65.js +0 -1
- package/dist/mint-components/p-97038074.system.entry.js +0 -1
- package/dist/mint-components/p-9acb5038.js +0 -1
- package/dist/mint-components/p-a7746488.system.js +0 -1
- package/dist/mint-components/p-d78298a5.entry.js +0 -17
- package/dist/mint-components/p-da4ff3b4.system.js +0 -1
- package/dist/mint-components/p-dbc0e4f8.system.js +0 -1
- package/dist/mint-components/p-e2d5cd22.js +0 -394
- package/dist/mint-components/p-f15c1a53.entry.js +0 -241
- package/dist/mint-components/p-f4ba6e2b.system.entry.js +0 -1
- package/dist/types/components/sqm-qr-code/sqm-qr-code-view.d.ts +0 -17
- package/dist/types/components/sqm-qr-code/sqm-qr-code.d.ts +0 -41
- package/dist/types/components/sqm-qr-code/useQRCode.d.ts +0 -3
- package/dist/types/global/android.d.ts +0 -7
- package/dist/types/global/demo.d.ts +0 -2
- package/dist/types/stories/features.d.ts +0 -4
- package/dist/types/stories/templates.d.ts +0 -4
|
@@ -46,12 +46,14 @@
|
|
|
46
46
|
"./components/sqm-leaderboard-rank/sqm-leaderboard-rank.js",
|
|
47
47
|
"./components/sqm-link-button/sqm-link-button.js",
|
|
48
48
|
"./components/sqm-logout-current-user/sqm-logout-current-user.js",
|
|
49
|
+
"./components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.js",
|
|
49
50
|
"./components/sqm-name-fields/sqm-name-fields.js",
|
|
50
51
|
"./components/sqm-navigation-menu/sqm-navigation-menu.js",
|
|
51
52
|
"./components/sqm-navigation-sidebar/sqm-navigation-sidebar.js",
|
|
52
53
|
"./components/sqm-navigation-sidebar-item/sqm-navigation-sidebar-item.js",
|
|
53
54
|
"./components/sqm-payout-button-scroll/sqm-payout-button-scroll.js",
|
|
54
55
|
"./components/sqm-popup-container/sqm-popup-container.js",
|
|
56
|
+
"./components/sqm-portal-change-marketing/sqm-portal-change-marketing.js",
|
|
55
57
|
"./components/sqm-portal-change-password/sqm-portal-change-password.js",
|
|
56
58
|
"./components/sqm-portal-container/sqm-portal-container.js",
|
|
57
59
|
"./components/sqm-portal-email-verification/sqm-portal-email-verification.js",
|
|
@@ -70,7 +72,6 @@
|
|
|
70
72
|
"./components/sqm-program-explainer/sqm-program-explainer.js",
|
|
71
73
|
"./components/sqm-program-explainer-step/sqm-program-explainer-step.js",
|
|
72
74
|
"./components/sqm-program-menu/sqm-program-menu.js",
|
|
73
|
-
"./components/sqm-qr-code/sqm-qr-code.js",
|
|
74
75
|
"./components/sqm-referral-card/sqm-referral-card.js",
|
|
75
76
|
"./components/sqm-referral-code/sqm-referral-code.js",
|
|
76
77
|
"./components/sqm-referral-iframe/sqm-referral-iframe.js",
|
|
@@ -17,7 +17,7 @@ const defaultProps = {
|
|
|
17
17
|
checked: false,
|
|
18
18
|
},
|
|
19
19
|
content: {
|
|
20
|
-
checkboxName: "
|
|
20
|
+
checkboxName: "terms",
|
|
21
21
|
checkboxLabel: "By signing up you agree to the {labelLink}",
|
|
22
22
|
checkboxLabelLink: "https://example.com",
|
|
23
23
|
checkboxLabelLinkText: "Terms and Conditions",
|
|
@@ -54,19 +54,10 @@ export function CheckboxFieldView(props) {
|
|
|
54
54
|
h("sl-checkbox", Object.assign({ exportparts: "label: input-label, base: input-base", name: `/${content.checkboxName}`, checked: states.checked, "onSl-change": (e) => {
|
|
55
55
|
e.target.value = e.target.checked;
|
|
56
56
|
callbacks.setChecked(e.target.value);
|
|
57
|
-
} }, (!content.checkboxOptional ? { required:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
:
|
|
62
|
-
|
|
63
|
-
id: content.checkboxName + "-message",
|
|
64
|
-
defaultMessage: content.checkboxLabel,
|
|
65
|
-
}, {
|
|
66
|
-
labelLink: (h("a", { href: content.checkboxLabelLink, target: "_blank" }, content.checkboxLabelLinkText || content.checkboxLabelLink)),
|
|
67
|
-
}),
|
|
68
|
-
!states.checked && (validationErrors === null || validationErrors === void 0 ? void 0 : validationErrors[content.checkboxName]) && (h("p", { class: sheet.classes.ErrorMessageStyle }, intl.formatMessage({
|
|
69
|
-
id: `errorMessage-${content.checkboxName}`,
|
|
70
|
-
defaultMessage: content.errorMessage,
|
|
71
|
-
}))))));
|
|
57
|
+
} }, (!content.checkboxOptional ? { required: false } : []), { disabled: ((_b = states.registrationFormState) === null || _b === void 0 ? void 0 : _b.loading) || ((_c = states.registrationFormState) === null || _c === void 0 ? void 0 : _c.disabled), required: false }), intl.formatMessage({
|
|
58
|
+
id: content.checkboxName + "-message",
|
|
59
|
+
defaultMessage: content.checkboxLabel,
|
|
60
|
+
}, {
|
|
61
|
+
labelLink: (h("a", { href: content.checkboxLabelLink, target: "_blank" }, content.checkboxLabelLinkText || content.checkboxLabelLink)),
|
|
62
|
+
}))));
|
|
72
63
|
}
|
|
@@ -10,7 +10,7 @@ import { useCheckboxField } from "./useCheckboxField";
|
|
|
10
10
|
* @uiName Form Checkbox Field
|
|
11
11
|
* @validParents ["sqm-portal-register","sqm-portal-registration-form"]
|
|
12
12
|
* @exampleGroup Microsite Components
|
|
13
|
-
* @example Form Checkbox Field - <sqm-checkbox-field checkbox-label="By signing up you agree to the {labelLink}" checkbox-label-link="https://example.com" checkbox-label-link-text="Terms and Conditions" error-message="Must be checked" ></sqm-checkbox-field>
|
|
13
|
+
* @example Form Checkbox Field - <sqm-checkbox-field checkbox-name="terms" checkbox-label="By signing up you agree to the {labelLink}" checkbox-label-link="https://example.com" checkbox-label-link-text="Terms and Conditions" error-message="Must be checked" ></sqm-checkbox-field>
|
|
14
14
|
*/
|
|
15
15
|
export class CheckboxField {
|
|
16
16
|
constructor() {
|
|
@@ -117,7 +117,7 @@ export class CheckboxField {
|
|
|
117
117
|
"references": {}
|
|
118
118
|
},
|
|
119
119
|
"required": false,
|
|
120
|
-
"optional":
|
|
120
|
+
"optional": true,
|
|
121
121
|
"docs": {
|
|
122
122
|
"tags": [{
|
|
123
123
|
"text": "Checkbox label link",
|
|
@@ -138,7 +138,7 @@ export class CheckboxField {
|
|
|
138
138
|
"references": {}
|
|
139
139
|
},
|
|
140
140
|
"required": false,
|
|
141
|
-
"optional":
|
|
141
|
+
"optional": true,
|
|
142
142
|
"docs": {
|
|
143
143
|
"tags": [{
|
|
144
144
|
"text": "Checkbox label link lext",
|
|
@@ -159,7 +159,7 @@ export class CheckboxField {
|
|
|
159
159
|
"references": {}
|
|
160
160
|
},
|
|
161
161
|
"required": false,
|
|
162
|
-
"optional":
|
|
162
|
+
"optional": true,
|
|
163
163
|
"docs": {
|
|
164
164
|
"tags": [{
|
|
165
165
|
"text": "Unchecked error message",
|
|
@@ -197,7 +197,7 @@ export class CheckboxField {
|
|
|
197
197
|
"mutable": false,
|
|
198
198
|
"complexType": {
|
|
199
199
|
"original": "DemoData<CheckboxFieldViewProps>",
|
|
200
|
-
"resolved": "{ states?: { registrationFormState?: RegistrationFormState; checked: boolean; }; content?: { checkboxName: string; checkboxLabel: string; checkboxLabelLink?: string; checkboxLabelLinkText?: string; checkboxOptional?: boolean; errorMessage
|
|
200
|
+
"resolved": "{ states?: { registrationFormState?: RegistrationFormState; checked: boolean; }; content?: { checkboxName: string; checkboxLabel: string; checkboxLabelLink?: string; checkboxLabelLinkText?: string; checkboxOptional?: boolean; errorMessage?: string; }; }",
|
|
201
201
|
"references": {
|
|
202
202
|
"DemoData": {
|
|
203
203
|
"location": "import",
|
package/dist/collection/components/sqm-marketing-emails-checkbox/MarketingEmailsCheckbox.stories.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import scenario from "./sqm-marketing-emails-checkbox.feature";
|
|
3
|
+
export default {
|
|
4
|
+
title: "Components/Marketing Emails Checkbox",
|
|
5
|
+
parameters: {
|
|
6
|
+
scenario,
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
export const Default = () => {
|
|
10
|
+
return h("sqm-marketing-emails-checkbox", null);
|
|
11
|
+
};
|
package/dist/collection/components/sqm-marketing-emails-checkbox/sqm-marketing-emails-checkbox.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { isDemo } from "@saasquatch/component-boilerplate";
|
|
2
|
+
import { withHooks } from "@saasquatch/stencil-hooks";
|
|
3
|
+
import { Component, h, Prop, State } from "@stencil/core";
|
|
4
|
+
import deepmerge from "deepmerge";
|
|
5
|
+
import { getProps } from "../../utils/utils";
|
|
6
|
+
import { CheckboxFieldView, } from "../sqm-checkbox-field/sqm-checkbox-field-view";
|
|
7
|
+
import { useCheckboxField } from "../sqm-checkbox-field/useCheckboxField";
|
|
8
|
+
/**
|
|
9
|
+
* @uiName Marketing Emails Checkbox Field
|
|
10
|
+
* @validParents ["sqm-portal-register","sqm-portal-registration-form"]
|
|
11
|
+
* @requiredFeatures ["MARKETING_EMAILS"]
|
|
12
|
+
*/
|
|
13
|
+
export class MarketingEmailsCheckbox {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.ignored = true;
|
|
16
|
+
/**
|
|
17
|
+
* @uiName Checkbox label
|
|
18
|
+
* @uiWidget textArea
|
|
19
|
+
*/
|
|
20
|
+
this.checkboxLabel = "I would like to receive marketing and promotional emails for this referral program";
|
|
21
|
+
/**
|
|
22
|
+
* @undocumented
|
|
23
|
+
*/
|
|
24
|
+
this.checkboxName = "marketingEmailOptIn";
|
|
25
|
+
withHooks(this);
|
|
26
|
+
}
|
|
27
|
+
disconnectedCallback() { }
|
|
28
|
+
render() {
|
|
29
|
+
const content = {
|
|
30
|
+
...getProps(this),
|
|
31
|
+
};
|
|
32
|
+
const { states, callbacks } = isDemo()
|
|
33
|
+
? useCheckboxFieldDemo(this)
|
|
34
|
+
: useCheckboxField(this);
|
|
35
|
+
return (h(CheckboxFieldView, { states: states, content: content, callbacks: callbacks }));
|
|
36
|
+
}
|
|
37
|
+
static get is() { return "sqm-marketing-emails-checkbox"; }
|
|
38
|
+
static get properties() { return {
|
|
39
|
+
"checkboxLabel": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"mutable": false,
|
|
42
|
+
"complexType": {
|
|
43
|
+
"original": "string",
|
|
44
|
+
"resolved": "string",
|
|
45
|
+
"references": {}
|
|
46
|
+
},
|
|
47
|
+
"required": false,
|
|
48
|
+
"optional": false,
|
|
49
|
+
"docs": {
|
|
50
|
+
"tags": [{
|
|
51
|
+
"text": "Checkbox label",
|
|
52
|
+
"name": "uiName"
|
|
53
|
+
}, {
|
|
54
|
+
"text": "textArea",
|
|
55
|
+
"name": "uiWidget"
|
|
56
|
+
}],
|
|
57
|
+
"text": ""
|
|
58
|
+
},
|
|
59
|
+
"attribute": "checkbox-label",
|
|
60
|
+
"reflect": false,
|
|
61
|
+
"defaultValue": "\"I would like to receive marketing and promotional emails for this referral program\""
|
|
62
|
+
},
|
|
63
|
+
"checkboxName": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"mutable": false,
|
|
66
|
+
"complexType": {
|
|
67
|
+
"original": "string",
|
|
68
|
+
"resolved": "string",
|
|
69
|
+
"references": {}
|
|
70
|
+
},
|
|
71
|
+
"required": false,
|
|
72
|
+
"optional": false,
|
|
73
|
+
"docs": {
|
|
74
|
+
"tags": [{
|
|
75
|
+
"text": undefined,
|
|
76
|
+
"name": "undocumented"
|
|
77
|
+
}],
|
|
78
|
+
"text": ""
|
|
79
|
+
},
|
|
80
|
+
"attribute": "checkbox-name",
|
|
81
|
+
"reflect": false,
|
|
82
|
+
"defaultValue": "\"marketingEmailOptIn\""
|
|
83
|
+
},
|
|
84
|
+
"demoData": {
|
|
85
|
+
"type": "unknown",
|
|
86
|
+
"mutable": false,
|
|
87
|
+
"complexType": {
|
|
88
|
+
"original": "DemoData<CheckboxFieldViewProps>",
|
|
89
|
+
"resolved": "{ states?: { registrationFormState?: RegistrationFormState; checked: boolean; }; content?: { checkboxName: string; checkboxLabel: string; checkboxLabelLink?: string; checkboxLabelLinkText?: string; checkboxOptional?: boolean; errorMessage?: string; }; }",
|
|
90
|
+
"references": {
|
|
91
|
+
"DemoData": {
|
|
92
|
+
"location": "import",
|
|
93
|
+
"path": "../../global/demo"
|
|
94
|
+
},
|
|
95
|
+
"CheckboxFieldViewProps": {
|
|
96
|
+
"location": "import",
|
|
97
|
+
"path": "../sqm-checkbox-field/sqm-checkbox-field-view"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": false,
|
|
102
|
+
"optional": true,
|
|
103
|
+
"docs": {
|
|
104
|
+
"tags": [{
|
|
105
|
+
"text": undefined,
|
|
106
|
+
"name": "undocumented"
|
|
107
|
+
}, {
|
|
108
|
+
"text": "object",
|
|
109
|
+
"name": "uiType"
|
|
110
|
+
}],
|
|
111
|
+
"text": ""
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}; }
|
|
115
|
+
static get states() { return {
|
|
116
|
+
"ignored": {}
|
|
117
|
+
}; }
|
|
118
|
+
}
|
|
119
|
+
function useCheckboxFieldDemo(props) {
|
|
120
|
+
return deepmerge({
|
|
121
|
+
states: {
|
|
122
|
+
registrationFormState: {},
|
|
123
|
+
checked: false,
|
|
124
|
+
},
|
|
125
|
+
callbacks: {
|
|
126
|
+
setChecked: () => { },
|
|
127
|
+
},
|
|
128
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
129
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { ChangeMarktingView } from "./sqm-portal-change-marketing-view";
|
|
3
|
+
export default {
|
|
4
|
+
title: "Components/Change Marketing Emails Status",
|
|
5
|
+
};
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
states: {
|
|
8
|
+
success: false,
|
|
9
|
+
loading: false,
|
|
10
|
+
submitDisabled: false,
|
|
11
|
+
formState: {
|
|
12
|
+
marketingEmailOptIn: false,
|
|
13
|
+
errors: null,
|
|
14
|
+
error: "",
|
|
15
|
+
},
|
|
16
|
+
user: {
|
|
17
|
+
id: "zach",
|
|
18
|
+
accountId: "zach",
|
|
19
|
+
marketingEmailOptIn: false,
|
|
20
|
+
},
|
|
21
|
+
text: {
|
|
22
|
+
emailPreferencesHeader: "Email preferences",
|
|
23
|
+
marketingCheckboxLabel: "I want to receive marketing emails and promotions for this referral program from impact.com",
|
|
24
|
+
submitChangeButtonText: "Save",
|
|
25
|
+
successMessage: "Opt-in preference has been changed.",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
callbacks: {
|
|
29
|
+
onSubmit: (props) => console.log(props),
|
|
30
|
+
setChecked: (value) => console.log(value),
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
export const Default = () => {
|
|
34
|
+
return h("sqm-portal-change-marketing", null);
|
|
35
|
+
};
|
|
36
|
+
export const Loading = () => {
|
|
37
|
+
return (h(ChangeMarktingView, Object.assign({}, defaultProps, { states: { ...defaultProps.states, loading: true } })));
|
|
38
|
+
};
|
|
39
|
+
export const Error = () => {
|
|
40
|
+
return (h(ChangeMarktingView, Object.assign({}, defaultProps, { states: {
|
|
41
|
+
...defaultProps.states,
|
|
42
|
+
formState: {
|
|
43
|
+
...defaultProps.states.formState,
|
|
44
|
+
errors: { error: true },
|
|
45
|
+
error: "An error string",
|
|
46
|
+
},
|
|
47
|
+
} })));
|
|
48
|
+
};
|
|
49
|
+
export const Success = () => {
|
|
50
|
+
return (h(ChangeMarktingView, Object.assign({}, defaultProps, { states: {
|
|
51
|
+
...defaultProps.states,
|
|
52
|
+
success: true,
|
|
53
|
+
} })));
|
|
54
|
+
};
|
package/dist/collection/components/sqm-portal-change-marketing/sqm-portal-change-marketing-view.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
import { createStyleSheet } from "../../styling/JSS";
|
|
3
|
+
import { CheckboxFieldView } from "../sqm-checkbox-field/sqm-checkbox-field-view";
|
|
4
|
+
import { TextSpanView } from "../sqm-text-span/sqm-text-span-view";
|
|
5
|
+
export function ChangeMarktingView(props) {
|
|
6
|
+
const { states, callbacks } = props;
|
|
7
|
+
const { text, formState } = states;
|
|
8
|
+
const { error } = formState;
|
|
9
|
+
const style = {
|
|
10
|
+
Container: {
|
|
11
|
+
display: "flex",
|
|
12
|
+
flexDirection: "column",
|
|
13
|
+
gap: "var(--sl-spacing-x-small)",
|
|
14
|
+
padding: "0 var(--sl-spacing-xxx-large) var(--sl-spacing-xxx-large)",
|
|
15
|
+
},
|
|
16
|
+
SubmitButton: { marginBottom: "var(--sl-spacing-medium)" },
|
|
17
|
+
Error: {
|
|
18
|
+
"&::part(erroralert-base)": {
|
|
19
|
+
"margin-bottom": "15px",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
Success: {
|
|
23
|
+
"&::part(successalert-base)": {
|
|
24
|
+
"margin-bottom": "15px",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const sheet = createStyleSheet(style);
|
|
29
|
+
const styleString = sheet.toString();
|
|
30
|
+
return (h("div", { class: sheet.classes.Container, part: "sqm-base" },
|
|
31
|
+
h("style", { type: "text/css" }, styleString),
|
|
32
|
+
h(TextSpanView, Object.assign({}, { type: "h2" }), text.emailPreferencesHeader),
|
|
33
|
+
h("sl-form", { "onSl-submit": callbacks.onSubmit },
|
|
34
|
+
h(CheckboxFieldView, { states: {
|
|
35
|
+
checked: states.formState.marketingEmailOptIn,
|
|
36
|
+
}, content: {
|
|
37
|
+
checkboxLabel: text.marketingCheckboxLabel,
|
|
38
|
+
checkboxName: "marketingEmailOptIn",
|
|
39
|
+
}, callbacks: {
|
|
40
|
+
setChecked: callbacks.setChecked,
|
|
41
|
+
} }),
|
|
42
|
+
h("sl-button", { class: sheet.classes.SubmitButton, type: "primary", submit: true, loading: states.loading, disabled: states.submitDisabled }, text.submitChangeButtonText),
|
|
43
|
+
error && (h("sqm-form-message", { class: sheet.classes.Error, type: "error", exportparts: "erroralert-icon" },
|
|
44
|
+
h("div", { part: "erroralert-text" }, error))),
|
|
45
|
+
states.success && (h("sqm-form-message", { class: sheet.classes.Success, type: "success", exportparts: "successalert-icon" },
|
|
46
|
+
h("div", { part: "successalert-text" }, states.text.successMessage))))));
|
|
47
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { Component, h, Prop, State } from "@stencil/core";
|
|
2
|
+
import { withHooks } from "@saasquatch/stencil-hooks";
|
|
3
|
+
import { ChangeMarktingView, } from "./sqm-portal-change-marketing-view";
|
|
4
|
+
import { usePortalProfile } from "./usePortalChangeMarketing";
|
|
5
|
+
import { getProps } from "../../utils/utils";
|
|
6
|
+
import { isDemo } from "@saasquatch/component-boilerplate";
|
|
7
|
+
import deepmerge from "deepmerge";
|
|
8
|
+
/**
|
|
9
|
+
* @uiName Change Marketing Opt in Status
|
|
10
|
+
* @requiredFeatures ["MARKETING_EMAILS"]
|
|
11
|
+
*/
|
|
12
|
+
export class PortalChangeMarketing {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.ignored = true;
|
|
15
|
+
/**
|
|
16
|
+
* @uiName Email preferences header
|
|
17
|
+
*/
|
|
18
|
+
this.emailPreferencesHeader = "Email preferences";
|
|
19
|
+
/**
|
|
20
|
+
* @uiName Marketing checkbox label
|
|
21
|
+
*/
|
|
22
|
+
this.marketingCheckboxLabel = "I want to receive marketing emails and promotions for this referral program from impact.com";
|
|
23
|
+
/**
|
|
24
|
+
* @uiName Submit changes button text
|
|
25
|
+
*/
|
|
26
|
+
this.submitChangeButtonText = "Save";
|
|
27
|
+
/**
|
|
28
|
+
* Displayed when the page fails to load due to a network error. The participant can try refreshing the page.
|
|
29
|
+
*
|
|
30
|
+
* @uiName Network request error message
|
|
31
|
+
*/
|
|
32
|
+
this.networkRequestMessage = "An error occurred while loading this page. Please refresh the page.";
|
|
33
|
+
/**
|
|
34
|
+
* @uiName Successful update message
|
|
35
|
+
*/
|
|
36
|
+
this.successMessage = "Opt-in preference has been changed.";
|
|
37
|
+
withHooks(this);
|
|
38
|
+
}
|
|
39
|
+
disconnectedCallback() { }
|
|
40
|
+
render() {
|
|
41
|
+
const props = isDemo()
|
|
42
|
+
? usePortalProfileDemo(getProps(this))
|
|
43
|
+
: usePortalProfile(getProps(this));
|
|
44
|
+
return h(ChangeMarktingView, Object.assign({}, props));
|
|
45
|
+
}
|
|
46
|
+
static get is() { return "sqm-portal-change-marketing"; }
|
|
47
|
+
static get encapsulation() { return "shadow"; }
|
|
48
|
+
static get properties() { return {
|
|
49
|
+
"emailPreferencesHeader": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"mutable": false,
|
|
52
|
+
"complexType": {
|
|
53
|
+
"original": "string",
|
|
54
|
+
"resolved": "string",
|
|
55
|
+
"references": {}
|
|
56
|
+
},
|
|
57
|
+
"required": false,
|
|
58
|
+
"optional": false,
|
|
59
|
+
"docs": {
|
|
60
|
+
"tags": [{
|
|
61
|
+
"text": "Email preferences header",
|
|
62
|
+
"name": "uiName"
|
|
63
|
+
}],
|
|
64
|
+
"text": ""
|
|
65
|
+
},
|
|
66
|
+
"attribute": "email-preferences-header",
|
|
67
|
+
"reflect": false,
|
|
68
|
+
"defaultValue": "\"Email preferences\""
|
|
69
|
+
},
|
|
70
|
+
"marketingCheckboxLabel": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"mutable": false,
|
|
73
|
+
"complexType": {
|
|
74
|
+
"original": "string",
|
|
75
|
+
"resolved": "string",
|
|
76
|
+
"references": {}
|
|
77
|
+
},
|
|
78
|
+
"required": false,
|
|
79
|
+
"optional": false,
|
|
80
|
+
"docs": {
|
|
81
|
+
"tags": [{
|
|
82
|
+
"text": "Marketing checkbox label",
|
|
83
|
+
"name": "uiName"
|
|
84
|
+
}],
|
|
85
|
+
"text": ""
|
|
86
|
+
},
|
|
87
|
+
"attribute": "marketing-checkbox-label",
|
|
88
|
+
"reflect": false,
|
|
89
|
+
"defaultValue": "\"I want to receive marketing emails and promotions for this referral program from impact.com\""
|
|
90
|
+
},
|
|
91
|
+
"submitChangeButtonText": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"mutable": false,
|
|
94
|
+
"complexType": {
|
|
95
|
+
"original": "string",
|
|
96
|
+
"resolved": "string",
|
|
97
|
+
"references": {}
|
|
98
|
+
},
|
|
99
|
+
"required": false,
|
|
100
|
+
"optional": false,
|
|
101
|
+
"docs": {
|
|
102
|
+
"tags": [{
|
|
103
|
+
"text": "Submit changes button text",
|
|
104
|
+
"name": "uiName"
|
|
105
|
+
}],
|
|
106
|
+
"text": ""
|
|
107
|
+
},
|
|
108
|
+
"attribute": "submit-change-button-text",
|
|
109
|
+
"reflect": false,
|
|
110
|
+
"defaultValue": "\"Save\""
|
|
111
|
+
},
|
|
112
|
+
"networkRequestMessage": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"mutable": false,
|
|
115
|
+
"complexType": {
|
|
116
|
+
"original": "string",
|
|
117
|
+
"resolved": "string",
|
|
118
|
+
"references": {}
|
|
119
|
+
},
|
|
120
|
+
"required": false,
|
|
121
|
+
"optional": false,
|
|
122
|
+
"docs": {
|
|
123
|
+
"tags": [{
|
|
124
|
+
"text": "Network request error message",
|
|
125
|
+
"name": "uiName"
|
|
126
|
+
}],
|
|
127
|
+
"text": "Displayed when the page fails to load due to a network error. The participant can try refreshing the page."
|
|
128
|
+
},
|
|
129
|
+
"attribute": "network-request-message",
|
|
130
|
+
"reflect": false,
|
|
131
|
+
"defaultValue": "\"An error occurred while loading this page. Please refresh the page.\""
|
|
132
|
+
},
|
|
133
|
+
"successMessage": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"mutable": false,
|
|
136
|
+
"complexType": {
|
|
137
|
+
"original": "string",
|
|
138
|
+
"resolved": "string",
|
|
139
|
+
"references": {}
|
|
140
|
+
},
|
|
141
|
+
"required": false,
|
|
142
|
+
"optional": false,
|
|
143
|
+
"docs": {
|
|
144
|
+
"tags": [{
|
|
145
|
+
"text": "Successful update message",
|
|
146
|
+
"name": "uiName"
|
|
147
|
+
}],
|
|
148
|
+
"text": ""
|
|
149
|
+
},
|
|
150
|
+
"attribute": "success-message",
|
|
151
|
+
"reflect": false,
|
|
152
|
+
"defaultValue": "\"Opt-in preference has been changed.\""
|
|
153
|
+
},
|
|
154
|
+
"demoData": {
|
|
155
|
+
"type": "unknown",
|
|
156
|
+
"mutable": false,
|
|
157
|
+
"complexType": {
|
|
158
|
+
"original": "DemoData<ChangeMarketingViewProps>",
|
|
159
|
+
"resolved": "{ states?: { success: boolean; loading: boolean; submitDisabled: boolean; formState: { marketingEmailOptIn: boolean; errors: any; error: string; }; user: { id: string; accountId: string; marketingEmailOptIn: boolean; }; text: { emailPreferencesHeader: string; marketingCheckboxLabel: string; submitChangeButtonText: string; successMessage: string; }; }; }",
|
|
160
|
+
"references": {
|
|
161
|
+
"DemoData": {
|
|
162
|
+
"location": "import",
|
|
163
|
+
"path": "../../global/demo"
|
|
164
|
+
},
|
|
165
|
+
"ChangeMarketingViewProps": {
|
|
166
|
+
"location": "import",
|
|
167
|
+
"path": "./sqm-portal-change-marketing-view"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"required": false,
|
|
172
|
+
"optional": true,
|
|
173
|
+
"docs": {
|
|
174
|
+
"tags": [{
|
|
175
|
+
"text": undefined,
|
|
176
|
+
"name": "undocumented"
|
|
177
|
+
}, {
|
|
178
|
+
"text": "object",
|
|
179
|
+
"name": "uiType"
|
|
180
|
+
}],
|
|
181
|
+
"text": ""
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}; }
|
|
185
|
+
static get states() { return {
|
|
186
|
+
"ignored": {}
|
|
187
|
+
}; }
|
|
188
|
+
}
|
|
189
|
+
function usePortalProfileDemo(props) {
|
|
190
|
+
return deepmerge({
|
|
191
|
+
states: {
|
|
192
|
+
success: false,
|
|
193
|
+
loading: false,
|
|
194
|
+
submitDisabled: false,
|
|
195
|
+
user: {
|
|
196
|
+
id: "01",
|
|
197
|
+
accountId: "111100000",
|
|
198
|
+
marketingEmailOptIn: false,
|
|
199
|
+
},
|
|
200
|
+
text: {
|
|
201
|
+
emailPreferencesHeader: props.emailPreferencesHeader,
|
|
202
|
+
marketingCheckboxLabel: props.marketingCheckboxLabel,
|
|
203
|
+
submitChangeButtonText: props.submitChangeButtonText,
|
|
204
|
+
successMessage: props.successMessage,
|
|
205
|
+
},
|
|
206
|
+
formState: {
|
|
207
|
+
marketingEmailOptIn: false,
|
|
208
|
+
errors: null,
|
|
209
|
+
error: "",
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
callbacks: {
|
|
213
|
+
onSubmit: (e) => console.log(e),
|
|
214
|
+
setChecked: () => { },
|
|
215
|
+
},
|
|
216
|
+
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
217
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { useMutation, useQuery, useUserIdentity, } from "@saasquatch/component-boilerplate";
|
|
2
|
+
import { useEffect, useState } from "@saasquatch/universal-hooks";
|
|
3
|
+
import { gql } from "graphql-request";
|
|
4
|
+
import jsonpointer from "jsonpointer";
|
|
5
|
+
const GET_USER = gql `
|
|
6
|
+
query {
|
|
7
|
+
viewer {
|
|
8
|
+
... on User {
|
|
9
|
+
id
|
|
10
|
+
accountId
|
|
11
|
+
marketingEmailOptIn
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
`;
|
|
16
|
+
const UPSERT_USER = gql `
|
|
17
|
+
mutation ($userInput: UserInput!) {
|
|
18
|
+
upsertUser(userInput: $userInput) {
|
|
19
|
+
id
|
|
20
|
+
marketingEmailOptIn
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
// view doesn't tolerate undefined, even when we're loading
|
|
25
|
+
const defaultFormState = {
|
|
26
|
+
marketingEmailOptIn: false,
|
|
27
|
+
errors: {},
|
|
28
|
+
error: "",
|
|
29
|
+
};
|
|
30
|
+
export function usePortalProfile(props) {
|
|
31
|
+
const userIdent = useUserIdentity();
|
|
32
|
+
const [success, setSuccess] = useState(false);
|
|
33
|
+
const [userData, setUserData] = useState(undefined);
|
|
34
|
+
const [formState, setFormState] = useState(defaultFormState);
|
|
35
|
+
const userDataResponse = useQuery(GET_USER, {}, !(userIdent === null || userIdent === void 0 ? void 0 : userIdent.jwt));
|
|
36
|
+
const [upsertUser, upsertUserResponse] = useMutation(UPSERT_USER);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.loading)
|
|
39
|
+
return;
|
|
40
|
+
if (upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.errors) {
|
|
41
|
+
setFormState((state) => {
|
|
42
|
+
var _a, _b, _c;
|
|
43
|
+
return ({
|
|
44
|
+
...state,
|
|
45
|
+
error: (_c = (_b = (_a = upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.errors) === null || _a === void 0 ? void 0 : _a.response) === null || _b === void 0 ? void 0 : _b.errors) === null || _c === void 0 ? void 0 : _c[0].message,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
setUserData((state) => {
|
|
51
|
+
var _a;
|
|
52
|
+
return ({
|
|
53
|
+
...state,
|
|
54
|
+
...(_a = upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.data) === null || _a === void 0 ? void 0 : _a.upsertUser,
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
if (upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.data)
|
|
58
|
+
setSuccess(true);
|
|
59
|
+
}
|
|
60
|
+
}, [upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.loading]);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
setUserData((data) => { var _a; return ({ ...data, ...(_a = userDataResponse === null || userDataResponse === void 0 ? void 0 : userDataResponse.data) === null || _a === void 0 ? void 0 : _a.viewer }); });
|
|
64
|
+
setFormState({
|
|
65
|
+
...defaultFormState,
|
|
66
|
+
...(_a = userDataResponse.data) === null || _a === void 0 ? void 0 : _a.viewer,
|
|
67
|
+
...(_b = upsertUserResponse.data) === null || _b === void 0 ? void 0 : _b.upsertUser,
|
|
68
|
+
});
|
|
69
|
+
}, [userDataResponse === null || userDataResponse === void 0 ? void 0 : userDataResponse.data]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
if ((_a = upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.errors) === null || _a === void 0 ? void 0 : _a.message) {
|
|
73
|
+
setFormState({
|
|
74
|
+
...(_b = userDataResponse.data) === null || _b === void 0 ? void 0 : _b.viewer,
|
|
75
|
+
error: props.networkRequestMessage,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}, [upsertUserResponse === null || upsertUserResponse === void 0 ? void 0 : upsertUserResponse.errors]);
|
|
79
|
+
const onSubmit = (event) => {
|
|
80
|
+
var _a;
|
|
81
|
+
setSuccess(false);
|
|
82
|
+
const formData = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.formData;
|
|
83
|
+
formData === null || formData === void 0 ? void 0 : formData.forEach((value, key) => {
|
|
84
|
+
jsonpointer.set(formData, key, value);
|
|
85
|
+
});
|
|
86
|
+
upsertUser({
|
|
87
|
+
userInput: {
|
|
88
|
+
id: userIdent === null || userIdent === void 0 ? void 0 : userIdent.id,
|
|
89
|
+
accountId: userIdent === null || userIdent === void 0 ? void 0 : userIdent.accountId,
|
|
90
|
+
marketingEmailOptIn: Boolean(formData.marketingEmailOptIn),
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
setFormState((s) => ({ ...s, errors: {}, error: "" }));
|
|
94
|
+
return;
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
states: {
|
|
98
|
+
success,
|
|
99
|
+
loading: (userDataResponse === null || userDataResponse === void 0 ? void 0 : userDataResponse.loading) || upsertUserResponse.loading,
|
|
100
|
+
submitDisabled: false,
|
|
101
|
+
formState,
|
|
102
|
+
user: userData,
|
|
103
|
+
text: {
|
|
104
|
+
emailPreferencesHeader: props.emailPreferencesHeader,
|
|
105
|
+
marketingCheckboxLabel: props.marketingCheckboxLabel,
|
|
106
|
+
submitChangeButtonText: props.submitChangeButtonText,
|
|
107
|
+
successMessage: props.successMessage,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
callbacks: {
|
|
111
|
+
onSubmit,
|
|
112
|
+
setChecked: (value) => setFormState({ ...formState, marketingEmailOptIn: value }),
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|