@saasquatch/mint-components 1.12.0-0 → 1.12.0-10
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-88821c64.js → ShadowViewAddon-040cffad.js} +6 -3
- package/dist/cjs/extractProps-fd93ba62.js +21 -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_16.cjs.entry.js +91 -72
- package/dist/cjs/sqm-big-stat_39.cjs.entry.js +128 -63
- package/dist/cjs/sqm-code-verification.cjs.entry.js +67 -77
- package/dist/cjs/sqm-email-verification.cjs.entry.js +158 -12
- package/dist/cjs/{sqm-invoice-table-view-ce9a34ac.js → sqm-invoice-table-view-c58966f8.js} +79 -0
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +56 -14
- package/dist/cjs/sqm-widget-verification-internal.cjs.entry.js +81 -11
- package/dist/cjs/sqm-widget-verification.cjs.entry.js +102 -19
- package/dist/cjs/usePayoutStatus-b9fb7399.js +70 -0
- package/dist/cjs/useVerificationEmail-6aacdb71.js +169 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/sqm-big-stat/useBigStat.js +6 -3
- package/dist/collection/components/sqm-payout-button-scroll/PayoutButtonScroll.stories.js +1 -2
- package/dist/collection/components/sqm-payout-button-scroll/sqm-payout-button-scroll-view.js +1 -0
- package/dist/collection/components/sqm-payout-button-scroll/sqm-payout-button-scroll.js +16 -3
- package/dist/collection/components/sqm-widget-verification/sqm-code-verification/WidgetCodeVerification.stories.js +9 -2
- package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.js +20 -10
- package/dist/collection/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification.js +34 -63
- package/dist/collection/components/sqm-widget-verification/sqm-code-verification/useCodeVerification.js +38 -29
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories.js +23 -3
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.js +17 -4
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification.js +65 -11
- package/dist/collection/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.js +76 -20
- package/dist/collection/components/sqm-widget-verification/sqm-widget-verification-internal.js +327 -15
- package/dist/collection/components/sqm-widget-verification/sqm-widget-verification.js +447 -22
- package/dist/collection/components/sqm-widget-verification/useVerificationEmail.js +165 -0
- package/dist/collection/components/tax-and-cash/BankingForm.stories.js +1 -0
- package/dist/collection/components/tax-and-cash/TaxForm.stories.js +78 -0
- package/dist/collection/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form.js +2 -1
- package/dist/collection/components/tax-and-cash/sqm-banking-info-form/useBankingInfoForm.js +7 -0
- package/dist/collection/components/tax-and-cash/sqm-docusign-form/docusign-iframe/DocusignIframe.js +0 -1
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.js +10 -0
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.js +72 -13
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.js +146 -9
- package/dist/collection/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.js +30 -15
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/data.js +6 -0
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.js +8 -8
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash/useTaxAndCash.js +2 -2
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.js +22 -16
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.js +99 -88
- package/dist/collection/components/tax-and-cash/sqm-tax-and-cash-dashboard/useTaxAndCashDashboard.js +8 -1
- package/dist/collection/components/tax-and-cash/sqm-user-info-form/useUserInfoForm.js +16 -11
- package/dist/esm/{ShadowViewAddon-65c8679e.js → ShadowViewAddon-69b61037.js} +6 -3
- package/dist/esm/extractProps-ae1afbb3.js +19 -0
- package/dist/esm/{keys-a1496e39.js → keys-db1897ae.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/sqm-banking-info-form_16.entry.js +91 -72
- package/dist/esm/sqm-big-stat_39.entry.js +127 -62
- package/dist/esm/sqm-code-verification.entry.js +69 -79
- package/dist/esm/sqm-email-verification.entry.js +159 -13
- package/dist/esm/{sqm-invoice-table-view-08c03ba7.js → sqm-invoice-table-view-d1cfdaf4.js} +79 -0
- package/dist/esm/sqm-stencilbook.entry.js +56 -14
- package/dist/esm/sqm-widget-verification-internal.entry.js +84 -14
- package/dist/esm/sqm-widget-verification.entry.js +104 -21
- package/dist/esm/usePayoutStatus-1a635054.js +67 -0
- package/dist/esm/useVerificationEmail-c32696ba.js +167 -0
- package/dist/esm-es5/ShadowViewAddon-69b61037.js +1 -0
- package/dist/esm-es5/extractProps-ae1afbb3.js +1 -0
- package/dist/esm-es5/{keys-a1496e39.js → keys-db1897ae.js} +1 -1
- 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_16.entry.js +1 -1
- package/dist/esm-es5/sqm-big-stat_39.entry.js +1 -1
- package/dist/esm-es5/sqm-code-verification.entry.js +1 -1
- package/dist/esm-es5/sqm-email-verification.entry.js +1 -1
- package/dist/esm-es5/sqm-invoice-table-view-d1cfdaf4.js +1 -0
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/esm-es5/sqm-widget-verification-internal.entry.js +1 -1
- package/dist/esm-es5/sqm-widget-verification.entry.js +1 -1
- package/dist/esm-es5/usePayoutStatus-1a635054.js +1 -0
- package/dist/esm-es5/useVerificationEmail-c32696ba.js +1 -0
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/p-15c7a1d2.system.entry.js +1 -0
- package/dist/mint-components/p-1712a9fd.entry.js +11 -0
- package/dist/mint-components/p-1e616d45.system.js +1 -0
- package/dist/mint-components/{p-721a89c6.entry.js → p-24092973.entry.js} +2 -2
- package/dist/mint-components/p-26468242.js +1 -0
- package/dist/mint-components/p-331d060e.entry.js +223 -0
- package/dist/mint-components/p-39840341.js +1 -0
- package/dist/mint-components/p-4364001c.entry.js +12 -0
- package/dist/mint-components/p-4bd7a472.js +1 -0
- package/dist/mint-components/p-517224ef.js +19 -0
- package/dist/mint-components/p-5a23b560.system.entry.js +1 -0
- package/dist/mint-components/p-8300d8c8.system.js +1 -0
- package/dist/mint-components/p-8bddb468.system.entry.js +1 -0
- package/dist/mint-components/p-9596e97c.system.entry.js +1 -0
- package/dist/mint-components/p-974070c4.system.entry.js +1 -0
- package/dist/mint-components/{p-b651706a.js → p-9eae245f.js} +6 -3
- package/dist/mint-components/p-a8645c1b.system.js +1 -0
- package/dist/mint-components/p-b2a99637.system.js +1 -0
- package/dist/mint-components/{p-66a04cca.system.entry.js → p-b62faaa5.system.entry.js} +1 -1
- package/dist/mint-components/p-c41e1df8.entry.js +195 -0
- package/dist/mint-components/p-c510fb88.entry.js +1 -0
- package/dist/mint-components/p-ca809fdd.system.js +1 -1
- package/dist/mint-components/p-d7806f31.js +48 -0
- package/dist/mint-components/p-e01ac27c.system.js +1 -0
- package/dist/mint-components/p-e45a8501.system.entry.js +1 -0
- package/dist/mint-components/p-e990dc21.system.js +1 -0
- package/dist/mint-components/p-f340214f.entry.js +25 -0
- package/dist/types/components/sqm-payout-button-scroll/PayoutButtonScroll.stories.d.ts +0 -1
- package/dist/types/components/sqm-payout-button-scroll/sqm-payout-button-scroll.d.ts +7 -0
- package/dist/types/components/sqm-widget-verification/sqm-code-verification/WidgetCodeVerification.stories.d.ts +1 -0
- package/dist/types/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification-view.d.ts +3 -3
- package/dist/types/components/sqm-widget-verification/sqm-code-verification/sqm-code-verification.d.ts +4 -10
- package/dist/types/components/sqm-widget-verification/sqm-code-verification/useCodeVerification.d.ts +2 -0
- package/dist/types/components/sqm-widget-verification/sqm-email-verification/WidgetEmailVerification.stories.d.ts +4 -1
- package/dist/types/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification-view.d.ts +6 -1
- package/dist/types/components/sqm-widget-verification/sqm-email-verification/sqm-email-verification.d.ts +10 -2
- package/dist/types/components/sqm-widget-verification/sqm-email-verification/useEmailVerification.d.ts +3 -2
- package/dist/types/components/sqm-widget-verification/sqm-widget-verification-internal.d.ts +15 -0
- package/dist/types/components/sqm-widget-verification/sqm-widget-verification.d.ts +79 -0
- package/dist/types/components/sqm-widget-verification/useVerificationEmail.d.ts +14 -0
- package/dist/types/components/tax-and-cash/TaxForm.stories.d.ts +1 -0
- package/dist/types/components/tax-and-cash/sqm-banking-info-form/sqm-banking-info-form-view.d.ts +1 -0
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/PayoutStatusAlert.stories.d.ts +2 -0
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert-view.d.ts +12 -0
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/sqm-payout-status-alert.d.ts +41 -0
- package/dist/types/components/tax-and-cash/sqm-payout-status-alert/usePayoutStatus.d.ts +12 -0
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash/data.d.ts +6 -0
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash/sqm-tax-and-cash.d.ts +2 -2
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard-view.d.ts +10 -3
- package/dist/types/components/tax-and-cash/sqm-tax-and-cash-dashboard/sqm-tax-and-cash-dashboard.d.ts +19 -18
- package/dist/types/components.d.ts +366 -92
- 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/useEmailVerification-30a1c7f6.js +0 -75
- package/dist/collection/components/sqm-widget-verification/useWidgetVerification.js +0 -3
- package/dist/esm/useEmailVerification-7135732c.js +0 -72
- package/dist/esm-es5/ShadowViewAddon-65c8679e.js +0 -1
- package/dist/esm-es5/sqm-invoice-table-view-08c03ba7.js +0 -1
- package/dist/esm-es5/useEmailVerification-7135732c.js +0 -1
- package/dist/mint-components/p-117b4705.system.js +0 -1
- package/dist/mint-components/p-1bd0cda8.system.entry.js +0 -1
- package/dist/mint-components/p-1ee62d9f.system.entry.js +0 -1
- package/dist/mint-components/p-1f9a9b70.system.entry.js +0 -1
- package/dist/mint-components/p-23fdd44e.entry.js +0 -1
- package/dist/mint-components/p-36f7caec.system.entry.js +0 -1
- package/dist/mint-components/p-39397731.entry.js +0 -1
- package/dist/mint-components/p-39af4acd.entry.js +0 -240
- package/dist/mint-components/p-4c9b6fbe.system.js +0 -1
- package/dist/mint-components/p-65e2c043.system.js +0 -1
- package/dist/mint-components/p-663303b7.entry.js +0 -8
- package/dist/mint-components/p-6cae44d7.js +0 -1
- package/dist/mint-components/p-7f5c7bf7.system.entry.js +0 -1
- package/dist/mint-components/p-8a337864.js +0 -7
- package/dist/mint-components/p-a02afa72.system.js +0 -1
- package/dist/mint-components/p-a5a9aa07.entry.js +0 -189
- package/dist/mint-components/p-c763c0b2.js +0 -1
- package/dist/mint-components/p-e93e5740.entry.js +0 -1
- package/dist/mint-components/p-e9ca48fc.system.entry.js +0 -1
- package/dist/types/components/sqm-widget-verification/useWidgetVerification.d.ts +0 -1
|
@@ -12,7 +12,7 @@ const JSS = require('./JSS-8503a151.js');
|
|
|
12
12
|
const utils = require('./utils-6847bc06.js');
|
|
13
13
|
const sqmTextSpanView = require('./sqm-text-span-view-e1cd9bd3.js');
|
|
14
14
|
const keys = require('./keys-cff24974.js');
|
|
15
|
-
const
|
|
15
|
+
const useVerificationEmail = require('./useVerificationEmail-6aacdb71.js');
|
|
16
16
|
|
|
17
17
|
const style = {
|
|
18
18
|
Wrapper: {
|
|
@@ -96,7 +96,16 @@ function WidgetCodeVerificationView(props) {
|
|
|
96
96
|
id: "resendCodeText",
|
|
97
97
|
defaultMessage: text.resendCodeText,
|
|
98
98
|
}, {
|
|
99
|
-
resendCodeLink: (index.h("a", { href:
|
|
99
|
+
resendCodeLink: (index.h("a", { href: "", style: { textDecoration: "none" }, onClick: (e) => {
|
|
100
|
+
e.preventDefault();
|
|
101
|
+
callbacks.resendEmail();
|
|
102
|
+
} }, text.resendCodeLabel)),
|
|
103
|
+
});
|
|
104
|
+
const codeResentSuccessfully = global.intl.formatMessage({
|
|
105
|
+
id: "codeResentSuccessfully",
|
|
106
|
+
defaultMessage: text.codeResentSuccessfullyText,
|
|
107
|
+
}, {
|
|
108
|
+
email: states.email,
|
|
100
109
|
});
|
|
101
110
|
const inputClass = states.verifyFailed
|
|
102
111
|
? sheet.classes.CodeInputError
|
|
@@ -107,11 +116,14 @@ function WidgetCodeVerificationView(props) {
|
|
|
107
116
|
styleString),
|
|
108
117
|
index.h("div", { class: sheet.classes.Wrapper },
|
|
109
118
|
index.h("div", { class: sheet.classes.HeaderContainer },
|
|
110
|
-
index.h(sqmTextSpanView.TextSpanView, { type: "p" },
|
|
111
|
-
|
|
112
|
-
:
|
|
113
|
-
|
|
114
|
-
|
|
119
|
+
index.h(sqmTextSpanView.TextSpanView, { type: "p" }, global.intl.formatMessage({
|
|
120
|
+
id: `emailHeaderText`,
|
|
121
|
+
defaultMessage: states.verifyFailed
|
|
122
|
+
? text.reverifyCodeHeaderText
|
|
123
|
+
: text.verifyCodeHeaderText,
|
|
124
|
+
}, { email: states.email }))),
|
|
125
|
+
states.emailResent && (index.h("sqm-form-message", { type: "success", exportparts: "successalert-icon" },
|
|
126
|
+
index.h("b", null, codeResentSuccessfully))),
|
|
115
127
|
index.h("div", { class: sheet.classes.InputsContainer },
|
|
116
128
|
index.h("div", { ref: refs.codeWrapperRef, class: sheet.classes.CodeInputContainer },
|
|
117
129
|
index.h("sl-input", { class: inputClass, name: "code" }),
|
|
@@ -121,45 +133,22 @@ function WidgetCodeVerificationView(props) {
|
|
|
121
133
|
index.h("sl-input", { class: inputClass, name: "code" }),
|
|
122
134
|
index.h("sl-input", { class: inputClass, name: "code" })),
|
|
123
135
|
states.verifyFailed && (index.h("p", { class: sheet.classes.ErrorText }, text.invalidCodeText)),
|
|
124
|
-
index.h("sl-button", { class: sheet.classes.ContinueButton, onClick: callbacks.submitCode, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, text.verifyText)),
|
|
136
|
+
index.h("sl-button", { class: sheet.classes.ContinueButton, onClick: callbacks.submitCode, disabled: states.loading || states.initialiseLoading, loading: states.loading || states.initialiseLoading, exportparts: "base: primarybutton-base", type: "primary" }, text.verifyText)),
|
|
125
137
|
index.h("div", { class: sheet.classes.FooterContainer },
|
|
126
|
-
index.h(sqmTextSpanView.TextSpanView, { type: "p" }, resendCodeText)
|
|
127
|
-
index.h(sqmTextSpanView.TextSpanView, { type: "p" },
|
|
128
|
-
index.h("a", { href: "/", style: { textDecoration: "none" } }, text.useDifferentEmailText))))));
|
|
138
|
+
index.h(sqmTextSpanView.TextSpanView, { type: "p" }, resendCodeText)))));
|
|
129
139
|
}
|
|
130
140
|
|
|
131
|
-
// TODO: Move to component-boilerplate
|
|
132
141
|
const VerifyEmailWithCodeMutation = index_module.dist.gql `
|
|
133
|
-
mutation
|
|
134
|
-
|
|
142
|
+
mutation submitImpactPublisherEmail2FACode(
|
|
143
|
+
$user: UserIdInput!
|
|
144
|
+
$code: String!
|
|
145
|
+
) {
|
|
146
|
+
submitImpactPublisherEmail2FACode(user: $user, code: $code) {
|
|
135
147
|
verifiedEmail
|
|
136
148
|
accessKey
|
|
137
149
|
}
|
|
138
150
|
}
|
|
139
151
|
`;
|
|
140
|
-
function useCodeVerificationMutation() {
|
|
141
|
-
const user = index_module.K();
|
|
142
|
-
const [request, { loading, data, errors }] = index_module.xe(VerifyEmailWithCodeMutation);
|
|
143
|
-
const verifyUserWithCodeMutation = async (code) => {
|
|
144
|
-
try {
|
|
145
|
-
const result = await request({
|
|
146
|
-
user: {
|
|
147
|
-
id: user.id,
|
|
148
|
-
accountId: user.accountId,
|
|
149
|
-
},
|
|
150
|
-
code,
|
|
151
|
-
});
|
|
152
|
-
if (result instanceof Error || !result)
|
|
153
|
-
throw new Error();
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
catch (e) {
|
|
157
|
-
console.error("Failed to verify user", e);
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
return [verifyUserWithCodeMutation, { loading, data, errors }];
|
|
162
|
-
}
|
|
163
152
|
function useWidgetCodeVerification(props) {
|
|
164
153
|
const host = stencilHooks_module.l();
|
|
165
154
|
const [_, setShowCode] = index_module.Mn(keys.SHOW_CODE_NAMESPACE);
|
|
@@ -168,9 +157,8 @@ function useWidgetCodeVerification(props) {
|
|
|
168
157
|
const [emailResent, setEmailResent] = stencilHooks_module.useState(false);
|
|
169
158
|
const [codeRef, setCodeRef] = stencilHooks_module.useState(null);
|
|
170
159
|
const [validationError, setValidationError] = stencilHooks_module.useState(false);
|
|
171
|
-
|
|
172
|
-
const [
|
|
173
|
-
const [request, { loading: resendLoading, data, errors: resendErrors }] = useEmailVerification.useVerificationEmailMutation();
|
|
160
|
+
const [emailError, setEmailError] = stencilHooks_module.useState(false);
|
|
161
|
+
const { initialized, send: [sendEmail, { loading: sendLoading, errors: sendErrors }], verify: [verifyEmail, { loading: verifyLoading, errors: verifyErrors }], } = useVerificationEmail.useVerificationEmail();
|
|
174
162
|
stencilHooks_module.useEffect(() => {
|
|
175
163
|
if (!codeRef)
|
|
176
164
|
return;
|
|
@@ -186,7 +174,7 @@ function useWidgetCodeVerification(props) {
|
|
|
186
174
|
}
|
|
187
175
|
});
|
|
188
176
|
element.addEventListener("input", (e) => {
|
|
189
|
-
const input = e.
|
|
177
|
+
const input = e.data;
|
|
190
178
|
if (!input)
|
|
191
179
|
return;
|
|
192
180
|
if (idx === codeElements.length - 1) {
|
|
@@ -196,8 +184,10 @@ function useWidgetCodeVerification(props) {
|
|
|
196
184
|
if (input.length > 1) {
|
|
197
185
|
const rest = input.slice(1);
|
|
198
186
|
e.target.value = input.slice(0, 1);
|
|
199
|
-
codeElements[idx + 1].
|
|
200
|
-
|
|
187
|
+
codeElements[idx + 1].dispatchEvent(new InputEvent("input", {
|
|
188
|
+
inputType: "insertFromPaste",
|
|
189
|
+
data: rest,
|
|
190
|
+
}));
|
|
201
191
|
}
|
|
202
192
|
codeElements[idx + 1].focus();
|
|
203
193
|
});
|
|
@@ -208,14 +198,16 @@ function useWidgetCodeVerification(props) {
|
|
|
208
198
|
setValidationError(false);
|
|
209
199
|
};
|
|
210
200
|
const resendEmail = async () => {
|
|
211
|
-
//
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
201
|
+
// UI should only allow this to be called if initialized, but checking just in case
|
|
202
|
+
if (!initialized)
|
|
203
|
+
return;
|
|
204
|
+
const result = await sendEmail();
|
|
205
|
+
if (!result) {
|
|
206
|
+
setEmailError(true);
|
|
207
|
+
return;
|
|
218
208
|
}
|
|
209
|
+
if (emailSent)
|
|
210
|
+
setEmailResent(true);
|
|
219
211
|
setEmailSent(true);
|
|
220
212
|
};
|
|
221
213
|
const submitCode = async () => {
|
|
@@ -229,16 +221,13 @@ function useWidgetCodeVerification(props) {
|
|
|
229
221
|
codeElements.forEach((element) => {
|
|
230
222
|
code = `${code}${element.value}`;
|
|
231
223
|
});
|
|
224
|
+
// UI should only allow this to be called if initialized, but checking just in case
|
|
225
|
+
if (!initialized)
|
|
226
|
+
return;
|
|
232
227
|
setValidationError(false);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const event = new CustomEvent(keys.VERIFICATION_EVENT_KEY, {
|
|
237
|
-
detail: { token: res.verifyUserEmail.accessKey },
|
|
238
|
-
composed: true,
|
|
239
|
-
bubbles: true,
|
|
240
|
-
});
|
|
241
|
-
host.dispatchEvent(event);
|
|
228
|
+
const res = await verifyEmail(code);
|
|
229
|
+
if (res === null || res === void 0 ? void 0 : res.success) {
|
|
230
|
+
props.onVerification(res.accessKey);
|
|
242
231
|
reset();
|
|
243
232
|
}
|
|
244
233
|
else {
|
|
@@ -246,10 +235,15 @@ function useWidgetCodeVerification(props) {
|
|
|
246
235
|
}
|
|
247
236
|
};
|
|
248
237
|
stencilHooks_module.useEffect(() => {
|
|
238
|
+
// Wait for mutations to be determined from user lookup
|
|
239
|
+
if (!initialized)
|
|
240
|
+
return;
|
|
249
241
|
// email should already exist if user has completed email-verification
|
|
250
242
|
if (!email)
|
|
251
243
|
resendEmail();
|
|
252
|
-
|
|
244
|
+
else
|
|
245
|
+
setEmailSent(true);
|
|
246
|
+
}, [initialized]);
|
|
253
247
|
return {
|
|
254
248
|
refs: {
|
|
255
249
|
codeWrapperRef: setCodeRef,
|
|
@@ -257,7 +251,9 @@ function useWidgetCodeVerification(props) {
|
|
|
257
251
|
states: {
|
|
258
252
|
email,
|
|
259
253
|
emailResent,
|
|
260
|
-
|
|
254
|
+
resendError: sendErrors || verifyErrors,
|
|
255
|
+
initialiseLoading: !initialized,
|
|
256
|
+
loading: sendLoading || verifyLoading,
|
|
261
257
|
verifyFailed: !!validationError,
|
|
262
258
|
},
|
|
263
259
|
callbacks: {
|
|
@@ -274,7 +270,7 @@ const WidgetCodeVerification = class {
|
|
|
274
270
|
/**
|
|
275
271
|
* @uiName Verify code widget header text
|
|
276
272
|
*/
|
|
277
|
-
this.verifyCodeHeaderText = "Enter the code sent to email
|
|
273
|
+
this.verifyCodeHeaderText = "Enter the code sent to {email} from our referral provider, impact.com.";
|
|
278
274
|
/**
|
|
279
275
|
* @uiName Reverify code widget header text
|
|
280
276
|
*/
|
|
@@ -289,27 +285,16 @@ const WidgetCodeVerification = class {
|
|
|
289
285
|
* @uiName Resend code label
|
|
290
286
|
*/
|
|
291
287
|
this.resendCodeLabel = "Resend code";
|
|
292
|
-
/**
|
|
293
|
-
* The link that appears in the resend code link
|
|
294
|
-
* @uiName Resend code link
|
|
295
|
-
*/
|
|
296
|
-
// AL: TODO connect route to resend verification code
|
|
297
|
-
this.resendCodeLink = "/resend-code";
|
|
298
288
|
/**
|
|
299
289
|
* Link text displayed under verify button
|
|
300
290
|
* @uiName Resend code text
|
|
301
291
|
*/
|
|
302
292
|
this.codeResentSuccessfullyText = "Another code has been sent to {email}";
|
|
303
|
-
/**
|
|
304
|
-
* Link text displayed under the verify button
|
|
305
|
-
* @uiName Use different email text
|
|
306
|
-
*/
|
|
307
|
-
this.useDifferentEmailText = "Use a different email";
|
|
308
293
|
/**
|
|
309
294
|
* Error text displayed under verification input
|
|
310
295
|
* @uiName Invalid code text
|
|
311
296
|
*/
|
|
312
|
-
this.invalidCodeText = "
|
|
297
|
+
this.invalidCodeText = "Please check your code and try again. If you’re still having trouble, try resending your code.";
|
|
313
298
|
/**
|
|
314
299
|
* @uiName Verify code button text
|
|
315
300
|
*/
|
|
@@ -333,17 +318,22 @@ const WidgetCodeVerification = class {
|
|
|
333
318
|
}
|
|
334
319
|
};
|
|
335
320
|
function useDemoWidgetCodeVerification(props) {
|
|
321
|
+
const [emailResent, setEmailResent] = stencilHooks_module.useState(false);
|
|
322
|
+
const setVerifiedContext = index_module.Sn(keys.VERIFICATION_PARENT_NAMESPACE);
|
|
336
323
|
return cjs.cjs({
|
|
337
324
|
states: {
|
|
338
325
|
loading: false,
|
|
339
|
-
email: "",
|
|
340
|
-
|
|
326
|
+
email: "test@example.com",
|
|
327
|
+
emailResent,
|
|
328
|
+
resendError: true,
|
|
329
|
+
verifyFailed: true,
|
|
341
330
|
},
|
|
342
331
|
refs: {
|
|
343
332
|
codeWrapperRef: () => { },
|
|
344
333
|
},
|
|
345
334
|
callbacks: {
|
|
346
|
-
|
|
335
|
+
resendEmail: async () => setEmailResent(true),
|
|
336
|
+
submitCode: async () => setVerifiedContext(true),
|
|
347
337
|
},
|
|
348
338
|
text: props.getTextProps(),
|
|
349
339
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|
|
@@ -9,8 +9,130 @@ const cjs = require('./cjs-1066ec21.js');
|
|
|
9
9
|
const JSS = require('./JSS-8503a151.js');
|
|
10
10
|
const utils = require('./utils-6847bc06.js');
|
|
11
11
|
const sqmTextSpanView = require('./sqm-text-span-view-e1cd9bd3.js');
|
|
12
|
-
require('./keys-cff24974.js');
|
|
13
|
-
const
|
|
12
|
+
const keys = require('./keys-cff24974.js');
|
|
13
|
+
const useVerificationEmail = require('./useVerificationEmail-6aacdb71.js');
|
|
14
|
+
|
|
15
|
+
const UpsertUserEmailMutation = index_module.dist.gql `
|
|
16
|
+
mutation upsertUser($userInput: UserInput!) {
|
|
17
|
+
user(userInput: $userInput) {
|
|
18
|
+
id
|
|
19
|
+
accountId
|
|
20
|
+
email
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
const UserLookupQuery = index_module.dist.gql `
|
|
25
|
+
query user {
|
|
26
|
+
viewer {
|
|
27
|
+
... on User {
|
|
28
|
+
id
|
|
29
|
+
accountId
|
|
30
|
+
email
|
|
31
|
+
impactConnection {
|
|
32
|
+
user {
|
|
33
|
+
id
|
|
34
|
+
email
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
function useUpsertUserEmail() {
|
|
42
|
+
const user = index_module.K();
|
|
43
|
+
const [request, { loading: loading, data, errors }] = index_module.xe(UpsertUserEmailMutation);
|
|
44
|
+
const upsertUserEmail = async (email) => {
|
|
45
|
+
try {
|
|
46
|
+
const result = await request({
|
|
47
|
+
user: {
|
|
48
|
+
id: user.id,
|
|
49
|
+
accountId: user.accountId,
|
|
50
|
+
email,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
if (result instanceof Error || !result)
|
|
54
|
+
throw new Error();
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
console.error("Could not set email on user", e);
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return [
|
|
63
|
+
upsertUserEmail,
|
|
64
|
+
{
|
|
65
|
+
loading,
|
|
66
|
+
data,
|
|
67
|
+
errors,
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
function useWidgetEmailVerification(props) {
|
|
72
|
+
const [_, setShowCode] = index_module.Mn(keys.SHOW_CODE_NAMESPACE);
|
|
73
|
+
const [email, setEmail] = index_module.Mn(keys.VERIFICATION_EMAIL_NAMESPACE);
|
|
74
|
+
const [emailExists, setEmailExists] = stencilHooks_module.useState(false);
|
|
75
|
+
const [error, setError] = stencilHooks_module.useState(false);
|
|
76
|
+
const [mutationError, setMutationError] = stencilHooks_module.useState(false);
|
|
77
|
+
const { initialized, send: [sendEmail, { loading: sendLoading, errors }], } = useVerificationEmail.useVerificationEmail();
|
|
78
|
+
const [upsertUserEmail] = useUpsertUserEmail();
|
|
79
|
+
const [loading, setLoading] = stencilHooks_module.useState(true);
|
|
80
|
+
const { data, loading: initialLoading } = index_module.En(UserLookupQuery, {});
|
|
81
|
+
const emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
82
|
+
stencilHooks_module.useEffect(() => {
|
|
83
|
+
if (!(data === null || data === void 0 ? void 0 : data.viewer))
|
|
84
|
+
return;
|
|
85
|
+
setEmailExists(!!data.viewer.email);
|
|
86
|
+
}, [data]);
|
|
87
|
+
stencilHooks_module.useEffect(() => {
|
|
88
|
+
if (initialized)
|
|
89
|
+
setLoading(false);
|
|
90
|
+
}, [initialized]);
|
|
91
|
+
const submitEmail = async (e) => {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
if (!(data === null || data === void 0 ? void 0 : data.viewer))
|
|
94
|
+
return;
|
|
95
|
+
setLoading(true);
|
|
96
|
+
const toAddress = data.viewer.email;
|
|
97
|
+
if (!toAddress) {
|
|
98
|
+
// If no email on the user, set one
|
|
99
|
+
const formData = e.detail.formData;
|
|
100
|
+
const newEmail = formData.get("email").toString();
|
|
101
|
+
if (!emailRegex.test(newEmail)) {
|
|
102
|
+
setError(true);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const result = await upsertUserEmail(newEmail);
|
|
106
|
+
if (!result || !result.user.email)
|
|
107
|
+
setError(true);
|
|
108
|
+
}
|
|
109
|
+
// UI should not allow this call til initialisation is done
|
|
110
|
+
if (!initialized)
|
|
111
|
+
return;
|
|
112
|
+
const result = await sendEmail();
|
|
113
|
+
if (!result || !result.success)
|
|
114
|
+
setMutationError(true);
|
|
115
|
+
else {
|
|
116
|
+
// This is used to let the code verification widget know an email was already sent
|
|
117
|
+
setEmail(toAddress);
|
|
118
|
+
setShowCode(true);
|
|
119
|
+
}
|
|
120
|
+
setLoading(false);
|
|
121
|
+
};
|
|
122
|
+
return {
|
|
123
|
+
callbacks: {
|
|
124
|
+
submitEmail,
|
|
125
|
+
},
|
|
126
|
+
states: {
|
|
127
|
+
loading,
|
|
128
|
+
initialLoading: initialLoading && !initialized,
|
|
129
|
+
error,
|
|
130
|
+
email: data === null || data === void 0 ? void 0 : data.viewer.email,
|
|
131
|
+
sendCodeError: mutationError,
|
|
132
|
+
},
|
|
133
|
+
text: props.getTextProps(),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
14
136
|
|
|
15
137
|
const style = {
|
|
16
138
|
Wrapper: {
|
|
@@ -26,6 +148,16 @@ const style = {
|
|
|
26
148
|
flexDirection: "column",
|
|
27
149
|
maxWidth: "320px",
|
|
28
150
|
},
|
|
151
|
+
ErrorAlertContainer: {
|
|
152
|
+
"&::part(base)": {
|
|
153
|
+
backgroundColor: "var(--sl-color-red-100)",
|
|
154
|
+
borderTop: "none",
|
|
155
|
+
},
|
|
156
|
+
"&::part(message)": {
|
|
157
|
+
display: "flex",
|
|
158
|
+
flexDirection: "column",
|
|
159
|
+
},
|
|
160
|
+
},
|
|
29
161
|
ContinueButton: {
|
|
30
162
|
width: "100%",
|
|
31
163
|
maxWidth: "100px",
|
|
@@ -74,15 +206,18 @@ function WidgetEmailVerificationView(props) {
|
|
|
74
206
|
index.h("style", { type: "text/css" },
|
|
75
207
|
vanillaStyle,
|
|
76
208
|
styleString),
|
|
77
|
-
states.
|
|
78
|
-
" ",
|
|
209
|
+
states.sendCodeError && (index.h("sl-alert", { exportparts: "base: alert-base, icon:alert-icon", type: "danger", class: sheet.classes.ErrorAlertContainer, open: true },
|
|
210
|
+
index.h("sl-icon", { slot: "icon", name: "exclamation-octagon" }),
|
|
211
|
+
index.h("b", null, text.sendCodeErrorHeader),
|
|
212
|
+
text.sendCodeErrorDescription)),
|
|
213
|
+
states.initialLoading ? (renderLoadingSkeleton()) : (index.h("div", { class: sheet.classes.Wrapper },
|
|
79
214
|
index.h(sqmTextSpanView.TextSpanView, { type: "p" }, text.verifyEmailHeaderText),
|
|
80
215
|
index.h("sl-form", { "onSl-submit": callbacks.submitEmail },
|
|
81
216
|
index.h("div", { class: sheet.classes.InputsContainer },
|
|
82
|
-
index.h("sl-input", Object.assign({ exportparts: "label: input-label, base: input-base", label: text.emailLabel, value: states.email, type: "email", id: "email", name: "email",
|
|
217
|
+
index.h("sl-input", Object.assign({ exportparts: "label: input-label, base: input-base", label: text.emailLabel, value: states.email, type: "email", id: "email", name: "email", disabled: !!states.email || states.loading }, (states.error
|
|
83
218
|
? {
|
|
84
219
|
class: sheet.classes.ErrorInput,
|
|
85
|
-
helpText:
|
|
220
|
+
helpText: text.emailValidationErrorText,
|
|
86
221
|
}
|
|
87
222
|
: {}))),
|
|
88
223
|
index.h("sl-button", { submit: true, class: sheet.classes.ContinueButton, loading: states.loading, exportparts: "base: primarybutton-base", type: "primary" }, text.sendCodeText)))))));
|
|
@@ -96,9 +231,13 @@ const WidgetEmailVerification = class {
|
|
|
96
231
|
*/
|
|
97
232
|
this.verifyEmailHeaderText = "Start by verifying your email. We’ll send you a code through our referral provider, impact.com.";
|
|
98
233
|
/**
|
|
99
|
-
* @uiName
|
|
234
|
+
* @uiName Send code to email alert header
|
|
235
|
+
*/
|
|
236
|
+
this.sendCodeErrorHeader = "There was an error sending your code.";
|
|
237
|
+
/**
|
|
238
|
+
* @uiName Send code to email alert description
|
|
100
239
|
*/
|
|
101
|
-
this.
|
|
240
|
+
this.sendCodeErrorDescription = "Please try again. If this problem continues, contact our program support team.";
|
|
102
241
|
/**
|
|
103
242
|
* @uiName Email input label
|
|
104
243
|
*/
|
|
@@ -107,6 +246,10 @@ const WidgetEmailVerification = class {
|
|
|
107
246
|
* @uiName Send code button text
|
|
108
247
|
*/
|
|
109
248
|
this.sendCodeText = "Send code";
|
|
249
|
+
/**
|
|
250
|
+
* @uiName Send code button text
|
|
251
|
+
*/
|
|
252
|
+
this.emailValidationErrorText = "Please enter a valid email";
|
|
110
253
|
stencilHooks_module.h$1(this);
|
|
111
254
|
}
|
|
112
255
|
disconnectedCallback() { }
|
|
@@ -116,19 +259,22 @@ const WidgetEmailVerification = class {
|
|
|
116
259
|
render() {
|
|
117
260
|
const props = index_module.isDemo()
|
|
118
261
|
? useDemoWidgetEmailVerification(this)
|
|
119
|
-
:
|
|
262
|
+
: useWidgetEmailVerification(this);
|
|
120
263
|
return index.h(WidgetEmailVerificationView, Object.assign({}, props));
|
|
121
264
|
}
|
|
122
265
|
};
|
|
123
266
|
function useDemoWidgetEmailVerification(props) {
|
|
267
|
+
const setShowCode = index_module.Sn(keys.SHOW_CODE_NAMESPACE);
|
|
124
268
|
return cjs.cjs({
|
|
125
269
|
states: {
|
|
126
|
-
error:
|
|
270
|
+
error: true,
|
|
271
|
+
initialLoading: false,
|
|
127
272
|
loading: false,
|
|
128
|
-
email: "",
|
|
273
|
+
email: "test@example.com",
|
|
274
|
+
sendCodeError: true,
|
|
129
275
|
},
|
|
130
276
|
callbacks: {
|
|
131
|
-
submitEmail: async () =>
|
|
277
|
+
submitEmail: async () => setShowCode(true),
|
|
132
278
|
},
|
|
133
279
|
text: props.getTextProps(),
|
|
134
280
|
}, props.demoData || {}, { arrayMerge: (_, a) => a });
|