@servicetitan/mpa-components 0.3.0 → 0.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.
- package/CHANGELOG.md +8 -0
- package/README.md +5 -0
- package/lib/components/settings/company-details/index.d.ts.map +1 -1
- package/lib/components/settings/company-details/index.js +1 -1
- package/lib/components/settings/company-details/index.js.map +1 -1
- package/lib/components/settings/email-validation/email-validation.stories.d.ts +13 -5
- package/lib/components/settings/email-validation/email-validation.stories.d.ts.map +1 -1
- package/lib/components/settings/email-validation/email-validation.stories.js +50 -23
- package/lib/components/settings/email-validation/email-validation.stories.js.map +1 -1
- package/lib/components/settings/email-validation/index.d.ts +2 -2
- package/lib/components/settings/email-validation/index.d.ts.map +1 -1
- package/lib/components/settings/email-validation/index.js +3 -2
- package/lib/components/settings/email-validation/index.js.map +1 -1
- package/lib/components/settings/form-errors-list/index.d.ts.map +1 -1
- package/lib/components/settings/form-errors-list/index.js +6 -5
- package/lib/components/settings/form-errors-list/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/settings/company-details/index.tsx +1 -0
- package/src/components/settings/email-validation/email-validation.stories.tsx +56 -27
- package/src/components/settings/email-validation/index.tsx +6 -3
- package/src/components/settings/form-errors-list/index.tsx +14 -16
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
# [0.5.0](https://github.com/servicetitan/marketing/compare/@servicetitan/mpa-components@0.4.0...@servicetitan/mpa-components@0.5.0) (2022-08-01)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @servicetitan/mpa-components
|
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# @servicetitan/mpa-components
|
|
2
|
+
|
|
3
|
+
### Synopsis
|
|
4
|
+
|
|
5
|
+
This repo contains shared marketing's components. If you're adding component which can be used outside of marketing scope (in any other place of ServiceTitan's apps) then the proper place for it would be [anvil-uikit-contrib](https://github.com/servicetitan/anvil-uikit-contrib)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/company-details/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE;QACP,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1C,YAAY,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAClD,WAAW,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACjD,KAAK,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC3C,MAAM,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC5C,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1C,eAAe,EAAE,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAChD,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KAChD,CAAC;IACF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAkBD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/company-details/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGlE,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE;QACP,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1C,YAAY,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAClD,WAAW,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACjD,KAAK,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC3C,MAAM,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC5C,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC7C,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC1C,eAAe,EAAE,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAChD,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KAChD,CAAC;IACF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAkBD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqHlD,CAAC"}
|
|
@@ -6,6 +6,6 @@ import { NumberInput } from '@servicetitan/form';
|
|
|
6
6
|
import { SettingsSection } from '../settings-section';
|
|
7
7
|
const DEFAULT_SECTION_DESCRIPTION = (_jsxs(Fragment, { children: ["Enter these details as you would like them to appear in your campaign. Much of this info can be utilized as\u00A0", _jsx(Link, Object.assign({ href: "https://help.servicetitan.com/Content/Marketing/merge-tags.htm", target: "_blank", primary: true, className: "qa-settings-company-details-merge-tags" }, { children: "merge tags" }), void 0), "."] }, void 0));
|
|
8
8
|
export const CompanyDetails = observer(({ formState, logoPicker, sectionDescription = DEFAULT_SECTION_DESCRIPTION, handleCompanyEmailBlur = () => { }, }) => {
|
|
9
|
-
return (_jsx(SettingsSection, Object.assign({ qaPrefix: "qa-settings-company-details", title: "Company Details", text: sectionDescription }, { children: _jsxs(Form, Object.assign({ className: "m-b-0-i" }, { children: [_jsx(Form.Input, { className: "m-b-2-i qa-settings-company-details-company-name", value: formState.companyName.value, onChange: formState.companyName.onChangeHandler, error: formState.companyName.hasError, label: "Company Name", placeholder: "Enter company name", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-2-i qa-settings-company-details-tagline", value: formState.tagline.value, onChange: formState.tagline.onChangeHandler, error: formState.tagline.hasError, label: "Tagline / Slogan", placeholder: "ex: Trusted since 1956", fluid: true }, void 0), _jsxs(Form.Group, Object.assign({ className: "m-b-2-i" }, { children: [_jsx(Form.Input, { width: 8, className: "m-b-0-i qa-settings-company-details-address", value: formState.street.value, onChange: formState.street.onChangeHandler, error: formState.street.hasError, label: "Street Address", placeholder: "801 N Brand Blvd" }, void 0), _jsx(Form.Input, { width: 4, className: "m-b-0-i qa-settings-company-details-address", value: formState.unit.value, onChange: formState.unit.onChangeHandler, error: formState.unit.hasError, label: "Suite, Unit, etc" }, void 0)] }), void 0), _jsxs(Form.Group, Object.assign({ widths: "equal", className: "m-b-2-i" }, { children: [_jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-city", value: formState.city.value, onChange: formState.city.onChangeHandler, error: formState.city.hasError, label: "City", placeholder: "Glendale", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-state", value: formState.state.value, onChange: formState.state.onChangeHandler, error: formState.state.hasError, label: "State", placeholder: "CA", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-zip-code", value: formState.zipCode.value, onChange: formState.zipCode.onChangeHandler, error: formState.zipCode.hasError, label: "Zip Code", placeholder: "91203", fluid: true, maxLength: 7 }, void 0)] }), void 0), _jsxs(Form.Group, Object.assign({ className: "m-b-2-i" }, { children: [_jsx(Form.Input, { width: 8, className: "m-b-0-i qa-settings-company-details-company-email", value: formState.companyEmail.value, onChange: formState.companyEmail.onChangeHandler, error: formState.companyEmail.hasError, onBlur: handleCompanyEmailBlur, label: "Company Email", placeholder: "hello@yourcompany.com", fluid: true }, void 0), _jsx(Form.Field, Object.assign({ label: "Year Established", className: "qa-settings-company-details-company-email", width: 4, error: formState.yearEstablished.hasError }, { children: _jsx(NumberInput, { value: formState.yearEstablished.value, onChange: formState.yearEstablished.onChange, emptyValue: undefined, min: 1, max: 2099, useEmptyThousandsSeparator: true, placeholder: "1950", fluid: true }, void 0) }), void 0)] }), void 0), logoPicker] }), void 0) }), void 0));
|
|
9
|
+
return (_jsx(SettingsSection, Object.assign({ qaPrefix: "qa-settings-company-details", title: "Company Details", text: sectionDescription }, { children: _jsxs(Form, Object.assign({ className: "m-b-0-i" }, { children: [_jsx(Form.Input, { className: "m-b-2-i qa-settings-company-details-company-name", value: formState.companyName.value, onChange: formState.companyName.onChangeHandler, error: formState.companyName.hasError, label: "Company Name", placeholder: "Enter company name", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-2-i qa-settings-company-details-tagline", value: formState.tagline.value, onChange: formState.tagline.onChangeHandler, error: formState.tagline.hasError, label: "Tagline / Slogan", placeholder: "ex: Trusted since 1956", fluid: true }, void 0), _jsxs(Form.Group, Object.assign({ className: "m-b-2-i" }, { children: [_jsx(Form.Input, { width: 8, className: "m-b-0-i qa-settings-company-details-address", value: formState.street.value, onChange: formState.street.onChangeHandler, error: formState.street.hasError, label: "Street Address", placeholder: "801 N Brand Blvd" }, void 0), _jsx(Form.Input, { width: 4, className: "m-b-0-i qa-settings-company-details-address", value: formState.unit.value, onChange: formState.unit.onChangeHandler, error: formState.unit.hasError, label: "Suite, Unit, etc" }, void 0)] }), void 0), _jsxs(Form.Group, Object.assign({ widths: "equal", className: "m-b-2-i" }, { children: [_jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-city", value: formState.city.value, onChange: formState.city.onChangeHandler, error: formState.city.hasError, label: "City", placeholder: "Glendale", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-state", value: formState.state.value, onChange: formState.state.onChangeHandler, error: formState.state.hasError, label: "State", placeholder: "CA", fluid: true }, void 0), _jsx(Form.Input, { className: "m-b-0-i qa-settings-company-details-zip-code", value: formState.zipCode.value, onChange: formState.zipCode.onChangeHandler, error: formState.zipCode.hasError, label: "Zip Code", placeholder: "91203", fluid: true, maxLength: 7 }, void 0)] }), void 0), _jsxs(Form.Group, Object.assign({ className: "m-b-2-i" }, { children: [_jsx(Form.Input, { width: 8, className: "m-b-0-i qa-settings-company-details-company-email", value: formState.companyEmail.value, onChange: formState.companyEmail.onChangeHandler, error: formState.companyEmail.hasError, onBlur: handleCompanyEmailBlur, label: "Company Email", placeholder: "hello@yourcompany.com", fluid: true }, void 0), _jsx(Form.Field, Object.assign({ label: "Year Established", className: "qa-settings-company-details-company-email", width: 4, error: formState.yearEstablished.hasError }, { children: _jsx(NumberInput, { value: formState.yearEstablished.value, onChange: formState.yearEstablished.onChange, error: formState.yearEstablished.hasError, emptyValue: undefined, min: 1, max: 2099, useEmptyThousandsSeparator: true, placeholder: "1950", fluid: true }, void 0) }), void 0)] }), void 0), logoPicker] }), void 0) }), void 0));
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/company-details/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/company-details/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
declare enum EmailValidationLevel {
|
|
3
|
+
Low = 1,
|
|
4
|
+
Medium = 2,
|
|
5
|
+
High = 3
|
|
6
|
+
}
|
|
7
|
+
declare enum EmailValidationResult {
|
|
8
|
+
Undeliverable = 0,
|
|
9
|
+
Typo = 1,
|
|
10
|
+
Risky = 2,
|
|
11
|
+
Pending = -1
|
|
12
|
+
}
|
|
5
13
|
declare const _default: {
|
|
6
14
|
title: string;
|
|
7
|
-
component: ({ className, handleDownload, loading, resultGrid, setValidationRiskType, validationRiskType, }: import(".").EmailValidationProps<
|
|
15
|
+
component: ({ className, handleDownload, loading, resultGrid, setValidationRiskType, validationRiskType, }: import(".").EmailValidationProps<EmailValidationLevel, EmailValidationResult>) => JSX.Element;
|
|
8
16
|
parameters: {};
|
|
9
17
|
};
|
|
10
18
|
export default _default;
|
|
11
|
-
export declare function
|
|
19
|
+
export declare function EmailValidation(): JSX.Element;
|
|
12
20
|
//# sourceMappingURL=email-validation.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-validation.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/email-validation.stories.tsx"],"names":[],"mappings":";AAMA,aAAK,
|
|
1
|
+
{"version":3,"file":"email-validation.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/email-validation.stories.tsx"],"names":[],"mappings":";AAMA,aAAK,oBAAoB;IACrB,GAAG,IAAI;IACP,MAAM,IAAI;IACV,IAAI,IAAI;CACX;AAED,aAAK,qBAAqB;IACtB,aAAa,IAAI;IACjB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,OAAO,KAAK;CACf;;;;;;AA4CD,wBAIE;AAEF,wBAAgB,eAAe,gBAkD9B"}
|
|
@@ -12,25 +12,52 @@ import { useEffect, useState } from 'react';
|
|
|
12
12
|
import { TableState } from '@servicetitan/table';
|
|
13
13
|
import { InMemoryDataSource } from '@servicetitan/data-query';
|
|
14
14
|
import { emailValidationHoc } from '.';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
]
|
|
15
|
+
var EmailValidationLevel;
|
|
16
|
+
(function (EmailValidationLevel) {
|
|
17
|
+
EmailValidationLevel[EmailValidationLevel["Low"] = 1] = "Low";
|
|
18
|
+
EmailValidationLevel[EmailValidationLevel["Medium"] = 2] = "Medium";
|
|
19
|
+
EmailValidationLevel[EmailValidationLevel["High"] = 3] = "High";
|
|
20
|
+
})(EmailValidationLevel || (EmailValidationLevel = {}));
|
|
21
|
+
var EmailValidationResult;
|
|
22
|
+
(function (EmailValidationResult) {
|
|
23
|
+
EmailValidationResult[EmailValidationResult["Undeliverable"] = 0] = "Undeliverable";
|
|
24
|
+
EmailValidationResult[EmailValidationResult["Typo"] = 1] = "Typo";
|
|
25
|
+
EmailValidationResult[EmailValidationResult["Risky"] = 2] = "Risky";
|
|
26
|
+
EmailValidationResult[EmailValidationResult["Pending"] = -1] = "Pending";
|
|
27
|
+
})(EmailValidationResult || (EmailValidationResult = {}));
|
|
28
|
+
const levelResultMap = new Map([
|
|
29
|
+
[EmailValidationLevel.High, [EmailValidationResult.Undeliverable]],
|
|
30
|
+
[EmailValidationLevel.Medium, [EmailValidationResult.Undeliverable]],
|
|
31
|
+
[EmailValidationLevel.Low, [EmailValidationResult.Undeliverable]],
|
|
32
|
+
]);
|
|
33
|
+
const resultToText = new Map([
|
|
34
|
+
[EmailValidationResult.Risky, 'Risky'],
|
|
35
|
+
[EmailValidationResult.Typo, 'Typo'],
|
|
36
|
+
[EmailValidationResult.Undeliverable, 'Undeliverable'],
|
|
37
|
+
]);
|
|
38
|
+
const resultToTooltipText = new Map([
|
|
39
|
+
[
|
|
40
|
+
EmailValidationResult.Risky,
|
|
41
|
+
'Address was determined risky based on historical analysis or problematic results.',
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
EmailValidationResult.Typo,
|
|
45
|
+
'Address was possibly typed incorrectly during sign-up, or matches known typo domains',
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
EmailValidationResult.Undeliverable,
|
|
49
|
+
'Address was determined invalid after performing multiple checks including MX, SMTP, etc.',
|
|
50
|
+
],
|
|
51
|
+
]);
|
|
52
|
+
const EmailValidationComponent = emailValidationHoc({
|
|
53
|
+
resultToText,
|
|
20
54
|
levelTypeMap: {
|
|
21
|
-
high:
|
|
22
|
-
medium:
|
|
23
|
-
low:
|
|
55
|
+
high: EmailValidationLevel.High,
|
|
56
|
+
medium: EmailValidationLevel.Medium,
|
|
57
|
+
low: EmailValidationLevel.Low,
|
|
24
58
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
['medium', ['ok', 'fail']],
|
|
28
|
-
['high', ['ok']],
|
|
29
|
-
]),
|
|
30
|
-
resultToTooltipText: new Map([
|
|
31
|
-
['ok', 'Valid'],
|
|
32
|
-
['fail', 'Invalid'],
|
|
33
|
-
]),
|
|
59
|
+
levelResultMap,
|
|
60
|
+
resultToTooltipText,
|
|
34
61
|
TenantDateCell: (props) => {
|
|
35
62
|
const value = props.dataItem[props.field];
|
|
36
63
|
return _jsx("td", Object.assign({ className: props.className }, { children: value.toString() }), void 0);
|
|
@@ -38,11 +65,11 @@ export const EmailValidation = emailValidationHoc({
|
|
|
38
65
|
});
|
|
39
66
|
export default {
|
|
40
67
|
title: 'MPA Components/settings/EmailValidation',
|
|
41
|
-
component:
|
|
68
|
+
component: EmailValidationComponent,
|
|
42
69
|
parameters: {},
|
|
43
70
|
};
|
|
44
|
-
export function
|
|
45
|
-
const [type, setType] = useState(
|
|
71
|
+
export function EmailValidation() {
|
|
72
|
+
const [type, setType] = useState(EmailValidationLevel.High);
|
|
46
73
|
const [loading, setLoading] = useState(true);
|
|
47
74
|
const grid = new TableState({
|
|
48
75
|
dataSource: null,
|
|
@@ -60,7 +87,7 @@ export function EmailValidationSimple() {
|
|
|
60
87
|
id: 1,
|
|
61
88
|
active: false,
|
|
62
89
|
createdOn: new Date(),
|
|
63
|
-
result:
|
|
90
|
+
result: EmailValidationResult.Risky,
|
|
64
91
|
email: 'varg@vikernes.com',
|
|
65
92
|
dateAdded: new Date(),
|
|
66
93
|
},
|
|
@@ -68,7 +95,7 @@ export function EmailValidationSimple() {
|
|
|
68
95
|
id: 2,
|
|
69
96
|
active: true,
|
|
70
97
|
createdOn: new Date(),
|
|
71
|
-
result:
|
|
98
|
+
result: EmailValidationResult.Typo,
|
|
72
99
|
email: 'joe@biden.com',
|
|
73
100
|
dateAdded: new Date(),
|
|
74
101
|
},
|
|
@@ -79,6 +106,6 @@ export function EmailValidationSimple() {
|
|
|
79
106
|
}
|
|
80
107
|
load();
|
|
81
108
|
});
|
|
82
|
-
return (_jsx(
|
|
109
|
+
return (_jsx(EmailValidationComponent, { loading: loading, resultGrid: grid, validationRiskType: type, setValidationRiskType: setType, handleDownload: () => alert('downloading csv') }, void 0));
|
|
83
110
|
}
|
|
84
111
|
//# sourceMappingURL=email-validation.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-validation.stories.js","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/email-validation.stories.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAkB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAA8B,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"email-validation.stories.js","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/email-validation.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,10 @@ interface EmailValidationHocOptions<TEmailValidationType extends string | number
|
|
|
23
23
|
medium: TEmailValidationType;
|
|
24
24
|
low: TEmailValidationType;
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
levelResultMap: Map<TEmailValidationType, TEmailValidationResult[]>;
|
|
27
27
|
resultToTooltipText: Map<TEmailValidationResult, string>;
|
|
28
28
|
TenantDateCell: FC<TableCellProps>;
|
|
29
29
|
}
|
|
30
|
-
export declare function emailValidationHoc<TEmailValidationType extends string | number = string, TEmailValidationResult extends string | number = string>({ resultToText, levelTypeMap, resultToTooltipText,
|
|
30
|
+
export declare function emailValidationHoc<TEmailValidationType extends string | number = string, TEmailValidationResult extends string | number = string>({ resultToText, levelTypeMap, resultToTooltipText, levelResultMap, TenantDateCell, }: EmailValidationHocOptions<TEmailValidationType, TEmailValidationResult>): ({ className, handleDownload, loading, resultGrid, setValidationRiskType, validationRiskType, }: EmailValidationProps<TEmailValidationType, TEmailValidationResult>) => JSX.Element;
|
|
31
31
|
export {};
|
|
32
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAMH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAS7B,MAAM,WAAW,0BAA0B,CAAC,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB,CACjC,oBAAoB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,sBAAsB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAEvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC3E,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,cAAc,IAAI,IAAI,CAAC;IACvB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC3D;AAED,UAAU,yBAAyB,CAC/B,oBAAoB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,sBAAsB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAEvD,YAAY,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAClD,YAAY,EAAE;QACV,IAAI,EAAE,oBAAoB,CAAC;QAC3B,MAAM,EAAE,oBAAoB,CAAC;QAC7B,GAAG,EAAE,oBAAoB,CAAC;KAC7B,CAAC;IACF,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAgBxC,OAAO,EAMH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAS7B,MAAM,WAAW,0BAA0B,CAAC,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB,CACjC,oBAAoB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,sBAAsB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAEvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC3E,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,cAAc,IAAI,IAAI,CAAC;IACvB,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC3D;AAED,UAAU,yBAAyB,CAC/B,oBAAoB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,sBAAsB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM;IAEvD,YAAY,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAClD,YAAY,EAAE;QACV,IAAI,EAAE,oBAAoB,CAAC;QAC3B,MAAM,EAAE,oBAAoB,CAAC;QAC7B,GAAG,EAAE,oBAAoB,CAAC;KAC7B,CAAC;IACF,cAAc,EAAE,GAAG,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACpE,mBAAmB,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACzD,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;CACtC;AAED,wBAAgB,kBAAkB,CAC9B,oBAAoB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,sBAAsB,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACzD,EACE,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,GACjB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,oGAyBnE,qBAAqB,oBAAoB,EAAE,sBAAsB,CAAC,iBAoKxE"}
|
|
@@ -6,7 +6,7 @@ import { observer, useLocalStore } from 'mobx-react';
|
|
|
6
6
|
import { BodyText, Button, Card, Container, Form, Grid, Layout, Link, Stack, Text, Tooltip, } from '@servicetitan/design-system';
|
|
7
7
|
import { DateRangeColumnMenuFilter, multiSelectColumnMenuFilter, StandardColumnMenuFilter, Table, TableColumn, } from '@servicetitan/table';
|
|
8
8
|
import { ResultDefinitionsModal } from '../result-definitions-modal';
|
|
9
|
-
export function emailValidationHoc({ resultToText, levelTypeMap, resultToTooltipText,
|
|
9
|
+
export function emailValidationHoc({ resultToText, levelTypeMap, resultToTooltipText, levelResultMap, TenantDateCell, }) {
|
|
10
10
|
const ResultColumnMenuFilter = multiSelectColumnMenuFilter([...resultToText.keys()], result => resultToText.get(result));
|
|
11
11
|
const ResultCell = props => {
|
|
12
12
|
const { result } = props.dataItem;
|
|
@@ -30,7 +30,8 @@ export function emailValidationHoc({ resultToText, levelTypeMap, resultToTooltip
|
|
|
30
30
|
};
|
|
31
31
|
const getResultsItemsForLevel = (level) => {
|
|
32
32
|
var _a;
|
|
33
|
-
return (_a =
|
|
33
|
+
return (_a = levelResultMap
|
|
34
|
+
.get(level)) === null || _a === void 0 ? void 0 : _a.map(r => resultToText.get(r)).map(r => _jsx("div", { children: r }, r));
|
|
34
35
|
};
|
|
35
36
|
return (_jsxs(Container, Object.assign({ className: classnames(className, 'p-b-5 qa-email-validation') }, { children: [_jsxs(Stack, Object.assign({ justifyContent: "space-between", alignItems: "center", className: "m-b-2" }, { children: [_jsx(Text, Object.assign({ size: 4, className: "m-r-3" }, { children: "Email Validation" }), void 0), _jsx(Button, Object.assign({ small: true, primary: true, onClick: handleDownload, className: "qa-email-validation-download-csv", iconName: "file_download", iconPosition: "left" }, { children: "Download CSV" }), void 0)] }), void 0), _jsxs(Layout, Object.assign({ type: "support", direction: "right" }, { children: [_jsx(Layout.Section, { children: _jsx(Text, Object.assign({ size: 2, className: "m-b-4 c-neutral-90" }, { children: "Email Validation acts like a filter that will block emails from going to bad email addresses. You won't necessarily see these emails in your suppression list, but it will effect your number \u201CSent\u201D." }), void 0) }, void 0), _jsx(Layout.Section, {}, void 0)] }), void 0), _jsxs(Grid, Object.assign({ relaxed: true }, { children: [_jsx(Grid.Column, Object.assign({ width: 3 }, { children: _jsxs(Card, { children: [_jsxs(Card.Section, Object.assign({ light: true }, { children: [_jsx(Text, Object.assign({ bold: true, size: 3, className: "m-b-1" }, { children: "Set Your Preference" }), void 0), _jsx(Text, Object.assign({ size: 2, className: "m-b-1" }, { children: "Choose what level you want to enable for auto-suppression." }), void 0), _jsx(Link, Object.assign({ primary: true, onClick: handleClickLearnMore, className: "qa-email-validation-learn-more" }, { children: "Learn More" }), void 0)] }), void 0), _jsx(Card.Section, { children: _jsx(Form.Radio, { label: _jsxs("div", Object.assign({ className: "m-l-1" }, { children: [_jsxs(Text, Object.assign({ bold: true, size: 3, className: "m-b-1" }, { children: ["High", _jsx("span", Object.assign({ className: "c-neutral-90 fs-1 m-l-1" }, { children: "(recommended)" }), void 0)] }), void 0), _jsx(BodyText, Object.assign({ size: "small", className: "c-neutral-90" }, { children: getResultsItemsForLevel(levelTypeMap.high) }), void 0)] }), void 0), checked: validationRiskType === levelTypeMap.high, onChange: handleCheck(levelTypeMap.high), className: "qa-email-validation-high" }, void 0) }, void 0), _jsx(Card.Section, { children: _jsx(Form.Radio, { label: _jsxs("div", Object.assign({ className: "m-l-1" }, { children: [_jsx(Text, Object.assign({ bold: true, size: 3, className: "m-b-1" }, { children: "Medium" }), void 0), _jsx(BodyText, Object.assign({ size: "small", className: "c-neutral-90" }, { children: getResultsItemsForLevel(levelTypeMap.medium) }), void 0)] }), void 0), checked: validationRiskType === levelTypeMap.medium, onChange: handleCheck(levelTypeMap.medium), className: "qa-email-validation-medium" }, void 0) }, void 0), _jsx(Card.Section, { children: _jsx(Form.Radio, { label: _jsxs("div", Object.assign({ className: "m-l-1" }, { children: [_jsx(Text, Object.assign({ bold: true, size: 3, className: "m-b-1" }, { children: "Low" }), void 0), _jsx(BodyText, Object.assign({ size: "small", className: "c-neutral-90" }, { children: getResultsItemsForLevel(levelTypeMap.low) }), void 0)] }), void 0), checked: validationRiskType === levelTypeMap.low, onChange: handleCheck(levelTypeMap.low), className: "qa-email-validation-low" }, void 0) }, void 0)] }, void 0) }), void 0), _jsx(Grid.Column, Object.assign({ width: 9 }, { children: _jsxs(Table, Object.assign({ tableState: resultGrid, sortable: true, loading: loading, className: "qa-email-validation-table", scrollable: "none" }, { children: [_jsx(TableColumn, { field: "email", title: "Email Address", columnMenu: StandardColumnMenuFilter }, void 0), _jsx(TableColumn, { field: "result", title: "Result", cell: ResultCell, columnMenu: ResultColumnMenuFilter }, void 0), _jsx(TableColumn, { field: "dateAdded", title: "Date Added", cell: TenantDateCell, columnMenu: DateRangeColumnMenuFilter }, void 0)] }), void 0) }), void 0)] }), void 0), localStore.open && _jsx(ResultDefinitionsModal, { onClose: handleClose }, void 0)] }), void 0));
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/index.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAM,WAAW,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EACH,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACH,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,EACL,WAAW,GAGd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA2CrE,MAAM,UAAU,kBAAkB,CAGhC,EACE,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/email-validation/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/form-errors-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/form-errors-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAyB,SAAS,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIpF,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB;IACxF,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA4BjD,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useMemo } from 'react';
|
|
3
2
|
import { observer } from 'mobx-react';
|
|
4
3
|
import { Banner } from '@servicetitan/design-system';
|
|
5
4
|
export const FormErrorsList = observer(({ form }) => {
|
|
5
|
+
const getErrors = () => {
|
|
6
|
+
return Object.entries(form.$).map(([key, field]) => {
|
|
7
|
+
return field.hasError ? (_jsx("li", Object.assign({ className: "qa-settings-email-error-list-item" }, { children: field.error }), key)) : null;
|
|
8
|
+
});
|
|
9
|
+
};
|
|
6
10
|
if (!form.hasError) {
|
|
7
11
|
return null;
|
|
8
12
|
}
|
|
9
|
-
|
|
10
|
-
return field.hasError ? (_jsx("li", Object.assign({ className: "qa-settings-email-error-list-item" }, { children: field.error }), key)) : null;
|
|
11
|
-
}), [form.$]);
|
|
12
|
-
return (_jsxs(Banner, Object.assign({ status: "critical", title: "Missing Fields", icon: true, className: "m-b-2 qa-settings-email-error" }, { children: [_jsx("p", { children: "Please complete all required fields:" }, void 0), _jsx("ul", Object.assign({ className: "qa-settings-email-error-list" }, { children: errorsList }), void 0)] }), void 0));
|
|
13
|
+
return (_jsxs(Banner, Object.assign({ status: "critical", title: "Missing Fields", icon: true, className: "m-b-2 qa-settings-email-error" }, { children: [_jsx("p", { children: "Please complete all required fields:" }, void 0), _jsx("ul", Object.assign({ className: "qa-settings-email-error-list" }, { children: getErrors() }), void 0)] }), void 0));
|
|
13
14
|
});
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/form-errors-list/index.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/settings/form-errors-list/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,MAAM,CAAC,MAAM,cAAc,GAA4B,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAuB,EAAE,EAAE;IAC9F,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAuD,EAAE,EAAE;YACnE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpB,2BAAc,SAAS,EAAC,mCAAmC,gBACtD,KAAK,CAAC,KAAK,KADP,GAAG,CAEP,CACR,CAAC,CAAC,CAAC,IAAI,CAAC;QACb,CAAC,CACJ,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAChB,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,MAAC,MAAM,kBACH,MAAM,EAAC,UAAU,EACjB,KAAK,EAAC,gBAAgB,EACtB,IAAI,QACJ,SAAS,EAAC,+BAA+B,iBAEzC,uEAA2C,EAC3C,2BAAI,SAAS,EAAC,8BAA8B,gBAAE,SAAS,EAAE,YAAM,aAC1D,CACZ,CAAC;AACN,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/mpa-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"typings": "./lib/index.d.ts",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"cli": {
|
|
27
27
|
"webpack": false
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "701c3b9f7abe7e6f1dc11c0563385f4887521f2c"
|
|
30
30
|
}
|
|
@@ -141,6 +141,7 @@ export const CompanyDetails: FC<CompanyDetailsProps> = observer(
|
|
|
141
141
|
<NumberInput
|
|
142
142
|
value={formState.yearEstablished.value}
|
|
143
143
|
onChange={formState.yearEstablished.onChange}
|
|
144
|
+
error={formState.yearEstablished.hasError}
|
|
144
145
|
emptyValue={undefined}
|
|
145
146
|
min={1}
|
|
146
147
|
max={2099}
|
|
@@ -4,28 +4,55 @@ import { InMemoryDataSource } from '@servicetitan/data-query';
|
|
|
4
4
|
|
|
5
5
|
import { emailValidationHoc, EmailValidationTableRecord } from '.';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
enum EmailValidationLevel {
|
|
8
|
+
Low = 1,
|
|
9
|
+
Medium = 2,
|
|
10
|
+
High = 3,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
enum EmailValidationResult {
|
|
14
|
+
Undeliverable = 0,
|
|
15
|
+
Typo = 1,
|
|
16
|
+
Risky = 2,
|
|
17
|
+
Pending = -1,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const levelResultMap = new Map([
|
|
21
|
+
[EmailValidationLevel.High, [EmailValidationResult.Undeliverable]],
|
|
22
|
+
[EmailValidationLevel.Medium, [EmailValidationResult.Undeliverable]],
|
|
23
|
+
[EmailValidationLevel.Low, [EmailValidationResult.Undeliverable]],
|
|
24
|
+
]);
|
|
25
|
+
|
|
26
|
+
const resultToText = new Map<EmailValidationResult, string>([
|
|
27
|
+
[EmailValidationResult.Risky, 'Risky'],
|
|
28
|
+
[EmailValidationResult.Typo, 'Typo'],
|
|
29
|
+
[EmailValidationResult.Undeliverable, 'Undeliverable'],
|
|
30
|
+
]);
|
|
31
|
+
|
|
32
|
+
const resultToTooltipText = new Map<EmailValidationResult, string>([
|
|
33
|
+
[
|
|
34
|
+
EmailValidationResult.Risky,
|
|
35
|
+
'Address was determined risky based on historical analysis or problematic results.',
|
|
36
|
+
],
|
|
37
|
+
[
|
|
38
|
+
EmailValidationResult.Typo,
|
|
39
|
+
'Address was possibly typed incorrectly during sign-up, or matches known typo domains',
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
EmailValidationResult.Undeliverable,
|
|
43
|
+
'Address was determined invalid after performing multiple checks including MX, SMTP, etc.',
|
|
44
|
+
],
|
|
45
|
+
]);
|
|
9
46
|
|
|
10
|
-
|
|
11
|
-
resultToText
|
|
12
|
-
['ok', 'Valid'],
|
|
13
|
-
['fail', 'Invalid'],
|
|
14
|
-
]),
|
|
47
|
+
const EmailValidationComponent = emailValidationHoc<EmailValidationLevel, EmailValidationResult>({
|
|
48
|
+
resultToText,
|
|
15
49
|
levelTypeMap: {
|
|
16
|
-
high:
|
|
17
|
-
medium:
|
|
18
|
-
low:
|
|
50
|
+
high: EmailValidationLevel.High,
|
|
51
|
+
medium: EmailValidationLevel.Medium,
|
|
52
|
+
low: EmailValidationLevel.Low,
|
|
19
53
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
['medium', ['ok', 'fail']],
|
|
23
|
-
['high', ['ok']],
|
|
24
|
-
]),
|
|
25
|
-
resultToTooltipText: new Map([
|
|
26
|
-
['ok', 'Valid'],
|
|
27
|
-
['fail', 'Invalid'],
|
|
28
|
-
]),
|
|
54
|
+
levelResultMap,
|
|
55
|
+
resultToTooltipText,
|
|
29
56
|
TenantDateCell: (props: TableCellProps) => {
|
|
30
57
|
const value = props.dataItem[props.field!];
|
|
31
58
|
return <td className={props.className}>{value.toString()}</td>;
|
|
@@ -34,15 +61,15 @@ export const EmailValidation = emailValidationHoc<TType, TResult>({
|
|
|
34
61
|
|
|
35
62
|
export default {
|
|
36
63
|
title: 'MPA Components/settings/EmailValidation',
|
|
37
|
-
component:
|
|
64
|
+
component: EmailValidationComponent,
|
|
38
65
|
parameters: {},
|
|
39
66
|
};
|
|
40
67
|
|
|
41
|
-
export function
|
|
42
|
-
const [type, setType] = useState<
|
|
68
|
+
export function EmailValidation() {
|
|
69
|
+
const [type, setType] = useState<EmailValidationLevel>(EmailValidationLevel.High);
|
|
43
70
|
const [loading, setLoading] = useState(true);
|
|
44
71
|
|
|
45
|
-
const grid = new TableState<EmailValidationTableRecord<
|
|
72
|
+
const grid = new TableState<EmailValidationTableRecord<EmailValidationResult>>({
|
|
46
73
|
dataSource: null,
|
|
47
74
|
pageSize: 15,
|
|
48
75
|
});
|
|
@@ -53,12 +80,14 @@ export function EmailValidationSimple() {
|
|
|
53
80
|
return;
|
|
54
81
|
}
|
|
55
82
|
setLoading(true);
|
|
56
|
-
const dataSource = new InMemoryDataSource<
|
|
83
|
+
const dataSource = new InMemoryDataSource<
|
|
84
|
+
EmailValidationTableRecord<EmailValidationResult>
|
|
85
|
+
>([
|
|
57
86
|
{
|
|
58
87
|
id: 1,
|
|
59
88
|
active: false,
|
|
60
89
|
createdOn: new Date(),
|
|
61
|
-
result:
|
|
90
|
+
result: EmailValidationResult.Risky,
|
|
62
91
|
email: 'varg@vikernes.com',
|
|
63
92
|
dateAdded: new Date(),
|
|
64
93
|
},
|
|
@@ -66,7 +95,7 @@ export function EmailValidationSimple() {
|
|
|
66
95
|
id: 2,
|
|
67
96
|
active: true,
|
|
68
97
|
createdOn: new Date(),
|
|
69
|
-
result:
|
|
98
|
+
result: EmailValidationResult.Typo,
|
|
70
99
|
email: 'joe@biden.com',
|
|
71
100
|
dateAdded: new Date(),
|
|
72
101
|
},
|
|
@@ -78,7 +107,7 @@ export function EmailValidationSimple() {
|
|
|
78
107
|
});
|
|
79
108
|
|
|
80
109
|
return (
|
|
81
|
-
<
|
|
110
|
+
<EmailValidationComponent
|
|
82
111
|
loading={loading}
|
|
83
112
|
resultGrid={grid}
|
|
84
113
|
validationRiskType={type}
|
|
@@ -64,7 +64,7 @@ interface EmailValidationHocOptions<
|
|
|
64
64
|
medium: TEmailValidationType;
|
|
65
65
|
low: TEmailValidationType;
|
|
66
66
|
};
|
|
67
|
-
|
|
67
|
+
levelResultMap: Map<TEmailValidationType, TEmailValidationResult[]>;
|
|
68
68
|
resultToTooltipText: Map<TEmailValidationResult, string>;
|
|
69
69
|
TenantDateCell: FC<TableCellProps>;
|
|
70
70
|
}
|
|
@@ -76,7 +76,7 @@ export function emailValidationHoc<
|
|
|
76
76
|
resultToText,
|
|
77
77
|
levelTypeMap,
|
|
78
78
|
resultToTooltipText,
|
|
79
|
-
|
|
79
|
+
levelResultMap,
|
|
80
80
|
TenantDateCell,
|
|
81
81
|
}: EmailValidationHocOptions<TEmailValidationType, TEmailValidationResult>) {
|
|
82
82
|
const ResultColumnMenuFilter = multiSelectColumnMenuFilter(
|
|
@@ -127,7 +127,10 @@ export function emailValidationHoc<
|
|
|
127
127
|
};
|
|
128
128
|
|
|
129
129
|
const getResultsItemsForLevel = (level: TEmailValidationType) => {
|
|
130
|
-
return
|
|
130
|
+
return levelResultMap
|
|
131
|
+
.get(level)
|
|
132
|
+
?.map(r => resultToText.get(r))
|
|
133
|
+
.map(r => <div key={r}>{r}</div>);
|
|
131
134
|
};
|
|
132
135
|
|
|
133
136
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC
|
|
1
|
+
import { FC } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import { ComposibleValidatable, FormState, ValidatableMapOrArray } from 'formstate';
|
|
4
4
|
|
|
@@ -9,24 +9,22 @@ export interface FormErrorsListProps<T extends ValidatableMapOrArray = Validatab
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const FormErrorsList: FC<FormErrorsListProps> = observer(({ form }: FormErrorsListProps) => {
|
|
12
|
+
const getErrors = () => {
|
|
13
|
+
return Object.entries(form.$).map(
|
|
14
|
+
([key, field]: [key: string, field: ComposibleValidatable<unknown>]) => {
|
|
15
|
+
return field.hasError ? (
|
|
16
|
+
<li key={key} className="qa-settings-email-error-list-item">
|
|
17
|
+
{field.error}
|
|
18
|
+
</li>
|
|
19
|
+
) : null;
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
|
|
12
24
|
if (!form.hasError) {
|
|
13
25
|
return null;
|
|
14
26
|
}
|
|
15
27
|
|
|
16
|
-
const errorsList = useMemo(
|
|
17
|
-
() =>
|
|
18
|
-
Object.entries(form.$).map(
|
|
19
|
-
([key, field]: [key: string, field: ComposibleValidatable<unknown>]) => {
|
|
20
|
-
return field.hasError ? (
|
|
21
|
-
<li key={key} className="qa-settings-email-error-list-item">
|
|
22
|
-
{field.error}
|
|
23
|
-
</li>
|
|
24
|
-
) : null;
|
|
25
|
-
}
|
|
26
|
-
),
|
|
27
|
-
[form.$]
|
|
28
|
-
);
|
|
29
|
-
|
|
30
28
|
return (
|
|
31
29
|
<Banner
|
|
32
30
|
status="critical"
|
|
@@ -35,7 +33,7 @@ export const FormErrorsList: FC<FormErrorsListProps> = observer(({ form }: FormE
|
|
|
35
33
|
className="m-b-2 qa-settings-email-error"
|
|
36
34
|
>
|
|
37
35
|
<p>Please complete all required fields:</p>
|
|
38
|
-
<ul className="qa-settings-email-error-list">{
|
|
36
|
+
<ul className="qa-settings-email-error-list">{getErrors()}</ul>
|
|
39
37
|
</Banner>
|
|
40
38
|
);
|
|
41
39
|
});
|