@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 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,CAoHlD,CAAC"}
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 type TType = 'high' | 'medium' | 'low';
3
- declare type TResult = 'ok' | 'fail';
4
- export declare const EmailValidation: ({ className, handleDownload, loading, resultGrid, setValidationRiskType, validationRiskType, }: import(".").EmailValidationProps<TType, TResult>) => JSX.Element;
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<TType, TResult>) => JSX.Element;
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 EmailValidationSimple(): JSX.Element;
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,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACvC,aAAK,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7B,eAAO,MAAM,eAAe,mKAuB1B,CAAC;;;;;;AAEH,wBAIE;AAEF,wBAAgB,qBAAqB,gBAgDpC"}
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
- export const EmailValidation = emailValidationHoc({
16
- resultToText: new Map([
17
- ['ok', 'Valid'],
18
- ['fail', 'Invalid'],
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: 'high',
22
- medium: 'medium',
23
- low: 'low',
55
+ high: EmailValidationLevel.High,
56
+ medium: EmailValidationLevel.Medium,
57
+ low: EmailValidationLevel.Low,
24
58
  },
25
- levelsResultMap: new Map([
26
- ['high', ['ok', 'fail']],
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: EmailValidation,
68
+ component: EmailValidationComponent,
42
69
  parameters: {},
43
70
  };
44
- export function EmailValidationSimple() {
45
- const [type, setType] = useState('high');
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: 'ok',
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: 'fail',
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(EmailValidation, { loading: loading, resultGrid: grid, validationRiskType: type, setValidationRiskType: setType, handleDownload: () => alert('downloading csv') }, void 0));
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":"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"}
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
- levelsResultMap: Map<TEmailValidationType, TEmailValidationResult[]>;
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, levelsResultMap, TenantDateCell, }: EmailValidationHocOptions<TEmailValidationType, TEmailValidationResult>): ({ className, handleDownload, loading, resultGrid, setValidationRiskType, validationRiskType, }: EmailValidationProps<TEmailValidationType, TEmailValidationResult>) => JSX.Element;
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,eAAe,EAAE,GAAG,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACrE,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,eAAe,EACf,cAAc,GACjB,EAAE,yBAAyB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,oGAyBnE,qBAAqB,oBAAoB,EAAE,sBAAsB,CAAC,iBAiKxE"}
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, levelsResultMap, TenantDateCell, }) {
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 = levelsResultMap.get(level)) === null || _a === void 0 ? void 0 : _a.map(r => _jsx("div", { children: r }, r));
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":"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"}
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,EAAW,MAAM,OAAO,CAAC;AAEpC,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,CA8BjD,CAAC"}
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
- const errorsList = useMemo(() => Object.entries(form.$).map(([key, field]) => {
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":";AAAA,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAC;AACpC,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,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAChB,OAAO,IAAI,CAAC;KACf;IAED,MAAM,UAAU,GAAG,OAAO,CACtB,GAAG,EAAE,CACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CACtB,CAAC,CAAC,GAAG,EAAE,KAAK,CAAuD,EAAE,EAAE;QACnE,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;IACb,CAAC,CACJ,EACL,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,CAAC;IAEF,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,UAAU,YAAM,aACzD,CACZ,CAAC;AACN,CAAC,CAAC,CAAC"}
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.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": "83727a32567c2b028cb21bcda592ccd6bbf02b98"
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
- type TType = 'high' | 'medium' | 'low';
8
- type TResult = 'ok' | 'fail';
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
- export const EmailValidation = emailValidationHoc<TType, TResult>({
11
- resultToText: new Map([
12
- ['ok', 'Valid'],
13
- ['fail', 'Invalid'],
14
- ]),
47
+ const EmailValidationComponent = emailValidationHoc<EmailValidationLevel, EmailValidationResult>({
48
+ resultToText,
15
49
  levelTypeMap: {
16
- high: 'high',
17
- medium: 'medium',
18
- low: 'low',
50
+ high: EmailValidationLevel.High,
51
+ medium: EmailValidationLevel.Medium,
52
+ low: EmailValidationLevel.Low,
19
53
  },
20
- levelsResultMap: new Map([
21
- ['high', ['ok', 'fail']],
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: EmailValidation,
64
+ component: EmailValidationComponent,
38
65
  parameters: {},
39
66
  };
40
67
 
41
- export function EmailValidationSimple() {
42
- const [type, setType] = useState<TType>('high');
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<TResult>>({
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<EmailValidationTableRecord<TResult>>([
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: 'ok',
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: 'fail',
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
- <EmailValidation
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
- levelsResultMap: Map<TEmailValidationType, TEmailValidationResult[]>;
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
- levelsResultMap,
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 levelsResultMap.get(level)?.map(r => <div key={r}>{r}</div>);
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, useMemo } from 'react';
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">{errorsList}</ul>
36
+ <ul className="qa-settings-email-error-list">{getErrors()}</ul>
39
37
  </Banner>
40
38
  );
41
39
  });