@servicetitan/mpa-components 0.2.2 → 0.4.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/lib/components/settings/company-details/index.d.ts +10 -9
- package/lib/components/settings/company-details/index.d.ts.map +1 -1
- package/lib/components/settings/company-details/index.js.map +1 -1
- package/lib/components/settings/company-email-footer/company-email-footer.stories.js +2 -2
- package/lib/components/settings/company-email-footer/company-email-footer.stories.js.map +1 -1
- package/lib/components/settings/company-email-footer/index.d.ts +4 -4
- package/lib/components/settings/company-email-footer/index.d.ts.map +1 -1
- package/lib/components/settings/company-email-reply-to/index.d.ts +1 -1
- package/lib/components/settings/company-email-reply-to/index.d.ts.map +1 -1
- package/lib/components/settings/company-email-sender/company-email-sender.stories.d.ts +3 -1
- package/lib/components/settings/company-email-sender/company-email-sender.stories.d.ts.map +1 -1
- package/lib/components/settings/company-email-sender/company-email-sender.stories.js +7 -3
- package/lib/components/settings/company-email-sender/company-email-sender.stories.js.map +1 -1
- package/lib/components/settings/company-email-sender/custom-domain-sender.d.ts +12 -0
- package/lib/components/settings/company-email-sender/custom-domain-sender.d.ts.map +1 -0
- package/lib/components/settings/company-email-sender/custom-domain-sender.js +29 -0
- package/lib/components/settings/company-email-sender/custom-domain-sender.js.map +1 -0
- package/lib/components/settings/company-email-sender/index.d.ts +2 -11
- package/lib/components/settings/company-email-sender/index.d.ts.map +1 -1
- package/lib/components/settings/company-email-sender/index.js +2 -28
- package/lib/components/settings/company-email-sender/index.js.map +1 -1
- package/lib/components/settings/company-email-sender/simple-sender.d.ts +8 -0
- package/lib/components/settings/company-email-sender/simple-sender.d.ts.map +1 -0
- package/lib/components/settings/company-email-sender/simple-sender.js +18 -0
- package/lib/components/settings/company-email-sender/simple-sender.js.map +1 -0
- package/lib/components/settings/company-trade-checkbox/index.d.ts +2 -2
- package/lib/components/settings/company-trade-checkbox/index.d.ts.map +1 -1
- package/lib/components/settings/company-trade-checkbox/index.js.map +1 -1
- package/lib/components/settings/company-trades-picker/index.d.ts +3 -3
- package/lib/components/settings/company-trades-picker/index.d.ts.map +1 -1
- package/lib/components/settings/company-trades-picker/index.js.map +1 -1
- package/lib/components/settings/double-opt-in/double-opt-in.stories.js +2 -2
- package/lib/components/settings/double-opt-in/double-opt-in.stories.js.map +1 -1
- package/lib/components/settings/double-opt-in/index.d.ts +5 -5
- package/lib/components/settings/double-opt-in/index.d.ts.map +1 -1
- package/lib/components/settings/email-validation/email-validation.stories.d.ts +13 -4
- 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 +5 -5
- 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 +7 -0
- package/lib/components/settings/form-errors-list/index.d.ts.map +1 -0
- package/lib/components/settings/form-errors-list/index.js +15 -0
- package/lib/components/settings/form-errors-list/index.js.map +1 -0
- package/lib/components/settings/index.d.ts +2 -0
- package/lib/components/settings/index.d.ts.map +1 -1
- package/lib/components/settings/index.js +2 -0
- package/lib/components/settings/index.js.map +1 -1
- package/lib/components/settings/opt-out-message/index.d.ts +6 -6
- package/lib/components/settings/opt-out-message/index.d.ts.map +1 -1
- package/lib/components/settings/opt-out-message/opt-out-message.stories.js +2 -2
- package/lib/components/settings/opt-out-message/opt-out-message.stories.js.map +1 -1
- package/package.json +3 -9
- package/src/components/settings/company-details/index.tsx +10 -9
- package/src/components/settings/company-email-footer/company-email-footer.stories.tsx +2 -2
- package/src/components/settings/company-email-footer/index.tsx +4 -4
- package/src/components/settings/company-email-reply-to/index.tsx +1 -1
- package/src/components/settings/company-email-sender/company-email-sender.stories.tsx +11 -3
- package/src/components/settings/company-email-sender/custom-domain-sender.tsx +129 -0
- package/src/components/settings/company-email-sender/index.tsx +2 -129
- package/src/components/settings/company-email-sender/simple-sender.tsx +71 -0
- package/src/components/settings/company-trade-checkbox/index.tsx +3 -3
- package/src/components/settings/company-trades-picker/index.tsx +4 -4
- package/src/components/settings/double-opt-in/double-opt-in.stories.tsx +2 -2
- package/src/components/settings/double-opt-in/index.tsx +5 -5
- package/src/components/settings/email-validation/email-validation.stories.tsx +56 -27
- package/src/components/settings/email-validation/index.tsx +14 -11
- package/src/components/settings/form-errors-list/index.tsx +39 -0
- package/src/components/settings/index.ts +2 -0
- package/src/components/settings/opt-out-message/index.tsx +6 -6
- package/src/components/settings/opt-out-message/opt-out-message.stories.tsx +2 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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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"}
|
|
@@ -8,25 +8,25 @@ export interface EmailValidationTableRecord<T> {
|
|
|
8
8
|
result: T;
|
|
9
9
|
dateAdded?: Date | undefined;
|
|
10
10
|
}
|
|
11
|
-
export interface EmailValidationProps<TEmailValidationType extends string = string, TEmailValidationResult extends string = string> {
|
|
11
|
+
export interface EmailValidationProps<TEmailValidationType extends string | number = string, TEmailValidationResult extends string | number = string> {
|
|
12
12
|
className?: string;
|
|
13
13
|
loading: boolean;
|
|
14
14
|
resultGrid: TableState<EmailValidationTableRecord<TEmailValidationResult>>;
|
|
15
|
-
validationRiskType
|
|
15
|
+
validationRiskType?: TEmailValidationType;
|
|
16
16
|
handleDownload(): void;
|
|
17
17
|
setValidationRiskType(type: TEmailValidationType): void;
|
|
18
18
|
}
|
|
19
|
-
interface EmailValidationHocOptions<TEmailValidationType extends string = string, TEmailValidationResult extends string = string> {
|
|
19
|
+
interface EmailValidationHocOptions<TEmailValidationType extends string | number = string, TEmailValidationResult extends string | number = string> {
|
|
20
20
|
resultToText: Map<TEmailValidationResult, string>;
|
|
21
21
|
levelTypeMap: {
|
|
22
22
|
high: TEmailValidationType;
|
|
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 = string, TEmailValidationResult extends string = 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,
|
|
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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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { FormState, ValidatableMapOrArray } from 'formstate';
|
|
3
|
+
export interface FormErrorsListProps<T extends ValidatableMapOrArray = ValidatableMapOrArray> {
|
|
4
|
+
form: FormState<T>;
|
|
5
|
+
}
|
|
6
|
+
export declare const FormErrorsList: FC<FormErrorsListProps>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { Banner } from '@servicetitan/design-system';
|
|
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
|
+
};
|
|
10
|
+
if (!form.hasError) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
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));
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -4,6 +4,8 @@ export * from './company-email-reply-to';
|
|
|
4
4
|
export * from './company-email-sender';
|
|
5
5
|
export * from './company-trades-picker';
|
|
6
6
|
export * from './double-opt-in';
|
|
7
|
+
export * from './email-validation';
|
|
8
|
+
export * from './form-errors-list';
|
|
7
9
|
export * from './logo-picker';
|
|
8
10
|
export * from './opt-out-message';
|
|
9
11
|
export * from './settings-section';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -4,6 +4,8 @@ export * from './company-email-reply-to';
|
|
|
4
4
|
export * from './company-email-sender';
|
|
5
5
|
export * from './company-trades-picker';
|
|
6
6
|
export * from './double-opt-in';
|
|
7
|
+
export * from './email-validation';
|
|
8
|
+
export * from './form-errors-list';
|
|
7
9
|
export * from './logo-picker';
|
|
8
10
|
export * from './opt-out-message';
|
|
9
11
|
export * from './settings-section';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { CheckboxFieldState, InputFieldState } from '@servicetitan/form';
|
|
2
|
+
import { CheckboxFieldState, InputFieldState, TextAreaFieldState } from '@servicetitan/form';
|
|
3
3
|
export interface OptOutMessageState {
|
|
4
|
-
subjectLine: InputFieldState<string>;
|
|
5
|
-
header: InputFieldState<string>;
|
|
6
|
-
body:
|
|
7
|
-
buttonText: InputFieldState<string>;
|
|
8
|
-
monthsLimit: InputFieldState<number>;
|
|
4
|
+
subjectLine: InputFieldState<string | undefined>;
|
|
5
|
+
header: InputFieldState<string | undefined>;
|
|
6
|
+
body: TextAreaFieldState<string | undefined>;
|
|
7
|
+
buttonText: InputFieldState<string | undefined>;
|
|
8
|
+
monthsLimit: InputFieldState<number | undefined>;
|
|
9
9
|
enabled: CheckboxFieldState;
|
|
10
10
|
autoSuppressionEnabled: CheckboxFieldState;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/opt-out-message/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/opt-out-message/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAS7F,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,MAAM,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,IAAI,EAAE,kBAAkB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,UAAU,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,WAAW,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,kBAAkB,CAAC;IAC5B,sBAAsB,EAAE,kBAAkB,CAAC;CAC9C;AACD,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,mBAAmB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA8HhD,CAAC"}
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
-
import { CheckboxFieldState, InputFieldState } from '@servicetitan/form';
|
|
8
|
+
import { CheckboxFieldState, InputFieldState, TextAreaFieldState } from '@servicetitan/form';
|
|
9
9
|
import { injectable, provide, useDependencies } from '@servicetitan/react-ioc';
|
|
10
10
|
import { FormState } from 'formstate';
|
|
11
11
|
import { OptOutMessage as Component } from '.';
|
|
@@ -23,7 +23,7 @@ let OptOutStore = class OptOutStore {
|
|
|
23
23
|
value: new FormState({
|
|
24
24
|
subjectLine: new InputFieldState('Good bye'),
|
|
25
25
|
header: new InputFieldState('Opt out of emails'),
|
|
26
|
-
body: new
|
|
26
|
+
body: new TextAreaFieldState('Sorry to see you go!'),
|
|
27
27
|
buttonText: new InputFieldState('Bye'),
|
|
28
28
|
monthsLimit: new InputFieldState(6),
|
|
29
29
|
enabled: new CheckboxFieldState(true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt-out-message.stories.js","sourceRoot":"","sources":["../../../../src/components/settings/opt-out-message/opt-out-message.stories.tsx"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"opt-out-message.stories.js","sourceRoot":"","sources":["../../../../src/components/settings/opt-out-message/opt-out-message.stories.tsx"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,GAAG,CAAC;AAE/C,eAAe;IACX,KAAK,EAAE,uCAAuC;IAC9C,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,EAAE;CACjB,CAAC;AAGF,IAAM,WAAW,GAAjB,MAAM,WAAW;IAAjB;QACI;;;;mBAAO,IAAI,SAAS,CAAC;gBACjB,WAAW,EAAE,IAAI,eAAe,CAAC,UAAU,CAAC;gBAC5C,MAAM,EAAE,IAAI,eAAe,CAAC,mBAAmB,CAAC;gBAChD,IAAI,EAAE,IAAI,kBAAkB,CAAC,sBAAsB,CAAC;gBACpD,UAAU,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;gBACtC,WAAW,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC;gBACrC,sBAAsB,EAAE,IAAI,kBAAkB,CAAC,IAAI,CAAC;aACvD,CAAC;WAAC;IACP,CAAC;CAAA,CAAA;AAVK,WAAW;IADhB,UAAU,EAAE;GACP,WAAW,CAUhB;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;IACjC,UAAU,EAAE,CAAC,WAAW,CAAC;CAC5B,CAAC,CAAC,GAAG,EAAE;IACJ,MAAM,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,KAAC,SAAS,IAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,WAAI,CAAC;AAClD,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/mpa-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"typings": "./lib/index.d.ts",
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"classnames": "~2.3.1",
|
|
9
|
-
"lodash": "4.17.21"
|
|
10
|
-
},
|
|
11
7
|
"peerDependencies": {
|
|
12
8
|
"@servicetitan/confirm": "~21.4.1",
|
|
13
9
|
"@servicetitan/design-system": "~10.1.1",
|
|
@@ -22,9 +18,7 @@
|
|
|
22
18
|
},
|
|
23
19
|
"devDependencies": {
|
|
24
20
|
"@testing-library/react": "^12.0.0",
|
|
25
|
-
"@types/history": "~4.7.7"
|
|
26
|
-
"@types/lodash": "^4.14.182",
|
|
27
|
-
"@types/react": "~17.0.15"
|
|
21
|
+
"@types/history": "~4.7.7"
|
|
28
22
|
},
|
|
29
23
|
"publishConfig": {
|
|
30
24
|
"access": "restricted"
|
|
@@ -32,5 +26,5 @@
|
|
|
32
26
|
"cli": {
|
|
33
27
|
"webpack": false
|
|
34
28
|
},
|
|
35
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "fba3f9a9f4e8abe3ac19647eaa2b0069451d273c"
|
|
36
30
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FC, Fragment, ReactNode } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
+
import { FieldState } from 'formstate';
|
|
3
4
|
|
|
4
5
|
import { Form, Link } from '@servicetitan/design-system';
|
|
5
6
|
import { NumberInput, InputFieldState } from '@servicetitan/form';
|
|
@@ -7,15 +8,15 @@ import { NumberInput, InputFieldState } from '@servicetitan/form';
|
|
|
7
8
|
import { SettingsSection } from '../settings-section';
|
|
8
9
|
export interface CompanyDetailsProps {
|
|
9
10
|
formState: {
|
|
10
|
-
city: InputFieldState<string>;
|
|
11
|
-
companyEmail: InputFieldState<string>;
|
|
12
|
-
companyName: InputFieldState<string>;
|
|
13
|
-
state: InputFieldState<string>;
|
|
14
|
-
street: InputFieldState<string>;
|
|
15
|
-
tagline: InputFieldState<string>;
|
|
16
|
-
unit: InputFieldState<string>;
|
|
17
|
-
yearEstablished:
|
|
18
|
-
zipCode: InputFieldState<string>;
|
|
11
|
+
city: InputFieldState<string | undefined>;
|
|
12
|
+
companyEmail: InputFieldState<string | undefined>;
|
|
13
|
+
companyName: InputFieldState<string | undefined>;
|
|
14
|
+
state: InputFieldState<string | undefined>;
|
|
15
|
+
street: InputFieldState<string | undefined>;
|
|
16
|
+
tagline: InputFieldState<string | undefined>;
|
|
17
|
+
unit: InputFieldState<string | undefined>;
|
|
18
|
+
yearEstablished: FieldState<number | undefined>;
|
|
19
|
+
zipCode: InputFieldState<string | undefined>;
|
|
19
20
|
};
|
|
20
21
|
logoPicker?: ReactNode;
|
|
21
22
|
sectionDescription?: string | JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InputFieldState } from '@servicetitan/form';
|
|
1
|
+
import { InputFieldState, TextAreaFieldState } from '@servicetitan/form';
|
|
2
2
|
import { injectable, provide, useDependencies } from '@servicetitan/react-ioc';
|
|
3
3
|
import { FormState } from 'formstate';
|
|
4
4
|
|
|
@@ -13,7 +13,7 @@ export default {
|
|
|
13
13
|
@injectable()
|
|
14
14
|
class CompanyEmailStore {
|
|
15
15
|
form = new FormState({
|
|
16
|
-
legalCopy: new
|
|
16
|
+
legalCopy: new TextAreaFieldState('Legal copy example'),
|
|
17
17
|
license: new InputFieldState('License'),
|
|
18
18
|
copyrightText: new InputFieldState('Copyritght 2022'),
|
|
19
19
|
});
|
|
@@ -2,15 +2,15 @@ import { FC, Fragment } from 'react';
|
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
|
|
4
4
|
import { Form, Text } from '@servicetitan/design-system';
|
|
5
|
-
import { InputFieldState } from '@servicetitan/form';
|
|
5
|
+
import { InputFieldState, TextAreaFieldState } from '@servicetitan/form';
|
|
6
6
|
|
|
7
7
|
import { SettingsSection } from '../settings-section';
|
|
8
8
|
|
|
9
9
|
export interface CompanyEmailFooterProps {
|
|
10
10
|
formState: {
|
|
11
|
-
legalCopy:
|
|
12
|
-
license: InputFieldState<string>;
|
|
13
|
-
copyrightText: InputFieldState<string>;
|
|
11
|
+
legalCopy: TextAreaFieldState<string | undefined>;
|
|
12
|
+
license: InputFieldState<string | undefined>;
|
|
13
|
+
copyrightText: InputFieldState<string | undefined>;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -7,7 +7,7 @@ import { Form } from '@servicetitan/design-system';
|
|
|
7
7
|
import { SettingsSection } from '../settings-section';
|
|
8
8
|
|
|
9
9
|
export interface CompanyEmailReplyToProps {
|
|
10
|
-
replyToEmail: InputFieldState<string>;
|
|
10
|
+
replyToEmail: InputFieldState<string | undefined>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export const CompanyEmailReplyTo: FC<CompanyEmailReplyToProps> = observer(({ replyToEmail }) => {
|
|
@@ -2,11 +2,11 @@ import { InputFieldState } from '@servicetitan/form';
|
|
|
2
2
|
import { injectable, provide, useDependencies } from '@servicetitan/react-ioc';
|
|
3
3
|
import { FormState } from 'formstate';
|
|
4
4
|
|
|
5
|
-
import { CompanyEmailSender as
|
|
5
|
+
import { CompanyEmailSender as Simple, CompanyEmailSenderCustomDomain as Custom } from '.';
|
|
6
6
|
|
|
7
7
|
export default {
|
|
8
8
|
title: 'MPA Components/settings/CompanyEmailSender',
|
|
9
|
-
component:
|
|
9
|
+
component: Simple,
|
|
10
10
|
parameters: {},
|
|
11
11
|
};
|
|
12
12
|
|
|
@@ -19,8 +19,16 @@ class CompanyEmailSenderStore {
|
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
export const CompanyEmailSenderCustomDomain = provide({ singletons: [CompanyEmailSenderStore] })(
|
|
23
|
+
() => {
|
|
24
|
+
const [store] = useDependencies(CompanyEmailSenderStore);
|
|
25
|
+
|
|
26
|
+
return <Custom formState={store.form.$} senderTld="tld.com" />;
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
|
|
22
30
|
export const CompanyEmailSender = provide({ singletons: [CompanyEmailSenderStore] })(() => {
|
|
23
31
|
const [store] = useDependencies(CompanyEmailSenderStore);
|
|
24
32
|
|
|
25
|
-
return <
|
|
33
|
+
return <Simple senderName={store.form.$.senderName} senderEmail={store.form.$.senderEmail} />;
|
|
26
34
|
});
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { SyntheticEvent, Fragment, useCallback, FC } from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
|
|
4
|
+
import { Form, Text } from '@servicetitan/design-system';
|
|
5
|
+
import { InputFieldState } from '@servicetitan/form';
|
|
6
|
+
|
|
7
|
+
import { SettingsSection } from '../settings-section';
|
|
8
|
+
import { convertDomainName } from '../../../utils/helpers';
|
|
9
|
+
|
|
10
|
+
import * as Styles from './company-email-sender.module.less';
|
|
11
|
+
|
|
12
|
+
export interface CompanyEmailSenderProps {
|
|
13
|
+
formState: {
|
|
14
|
+
senderName: InputFieldState<string | undefined>;
|
|
15
|
+
senderDomain: InputFieldState<string | undefined>;
|
|
16
|
+
senderEmail: InputFieldState<string | undefined>;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
senderTld: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const CompanyEmailSender: FC<CompanyEmailSenderProps> = observer(
|
|
23
|
+
({ formState: { senderDomain, senderName, senderEmail }, senderTld }) => {
|
|
24
|
+
const handleSenderNameChange = useCallback(
|
|
25
|
+
(_0: SyntheticEvent<HTMLInputElement>, data: { value: string }) => {
|
|
26
|
+
if (data.value.length > 80) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
senderName.onChange(data.value);
|
|
31
|
+
},
|
|
32
|
+
[senderName]
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
const handleSenderDomainChange = useCallback(
|
|
36
|
+
(_0: SyntheticEvent<HTMLInputElement>, data: { value: string }) => {
|
|
37
|
+
if (data.value.length > 30) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
senderDomain.onChange(data.value);
|
|
42
|
+
},
|
|
43
|
+
[senderDomain]
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
const handleSenderEmailChange = useCallback(
|
|
47
|
+
(_0: SyntheticEvent<HTMLInputElement>, data: { value: string }) => {
|
|
48
|
+
if (data.value.length > 50) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
senderEmail.onChange(data.value);
|
|
53
|
+
},
|
|
54
|
+
[senderEmail]
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<SettingsSection
|
|
59
|
+
title="Sender"
|
|
60
|
+
text="Configure sender name and email."
|
|
61
|
+
qaPrefix="qa-settings-sender"
|
|
62
|
+
>
|
|
63
|
+
<Form className="m-b-0-i">
|
|
64
|
+
<Form.Group widths="equal" className="m-b-2-i">
|
|
65
|
+
<Form.Input
|
|
66
|
+
width={6}
|
|
67
|
+
className="m-b-0-i qa-settings-sender-name"
|
|
68
|
+
value={senderName.value}
|
|
69
|
+
onChange={handleSenderNameChange}
|
|
70
|
+
error={senderName.hasError}
|
|
71
|
+
label={
|
|
72
|
+
<Fragment>
|
|
73
|
+
Sender Name
|
|
74
|
+
<Text inline size={2} subdued>
|
|
75
|
+
max 80 characters
|
|
76
|
+
</Text>
|
|
77
|
+
</Fragment>
|
|
78
|
+
}
|
|
79
|
+
placeholder="John Doe"
|
|
80
|
+
fluid
|
|
81
|
+
/>
|
|
82
|
+
<Form.Input
|
|
83
|
+
width={6}
|
|
84
|
+
className="m-b-0-i qa-settings-sender-domain"
|
|
85
|
+
value={senderDomain.value}
|
|
86
|
+
onChange={handleSenderDomainChange}
|
|
87
|
+
error={senderDomain.hasError}
|
|
88
|
+
label="Sender Domain"
|
|
89
|
+
placeholder="Your Company"
|
|
90
|
+
fluid
|
|
91
|
+
/>
|
|
92
|
+
</Form.Group>
|
|
93
|
+
<Form.Group className="m-b-0-i">
|
|
94
|
+
<Form.Input
|
|
95
|
+
width={6}
|
|
96
|
+
className="m-b-0-i qa-settings-sender-email"
|
|
97
|
+
value={senderEmail.value}
|
|
98
|
+
onChange={handleSenderEmailChange}
|
|
99
|
+
error={senderEmail.hasError}
|
|
100
|
+
label={
|
|
101
|
+
<Fragment>
|
|
102
|
+
Sender Email
|
|
103
|
+
<Text inline size={2} subdued>
|
|
104
|
+
(domain added automatically)
|
|
105
|
+
</Text>
|
|
106
|
+
</Fragment>
|
|
107
|
+
}
|
|
108
|
+
placeholder="john.doe"
|
|
109
|
+
fluid
|
|
110
|
+
/>
|
|
111
|
+
<Form.Field label={'\u00A0'}>
|
|
112
|
+
<div className={Styles.domain}>
|
|
113
|
+
<Text
|
|
114
|
+
size={3}
|
|
115
|
+
bold
|
|
116
|
+
subdued
|
|
117
|
+
className="qa-settings-sender-generated-domain"
|
|
118
|
+
>
|
|
119
|
+
@{senderDomain.$ ? convertDomainName(senderDomain.$) : 'domain'}
|
|
120
|
+
.{senderTld}
|
|
121
|
+
</Text>
|
|
122
|
+
</div>
|
|
123
|
+
</Form.Field>
|
|
124
|
+
</Form.Group>
|
|
125
|
+
</Form>
|
|
126
|
+
</SettingsSection>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
);
|