@servicetitan/mpa-components 1.11.0 → 2.1.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/components/brands/brand-card/actions-button-section.d.ts +6 -0
  3. package/lib/components/brands/brand-card/actions-button-section.d.ts.map +1 -0
  4. package/lib/components/brands/brand-card/actions-button-section.js +22 -0
  5. package/lib/components/brands/brand-card/actions-button-section.js.map +1 -0
  6. package/lib/components/brands/brand-card/brand-card.d.ts +1 -1
  7. package/lib/components/brands/brand-card/brand-card.d.ts.map +1 -1
  8. package/lib/components/brands/brand-card/brand-card.js +8 -55
  9. package/lib/components/brands/brand-card/brand-card.js.map +1 -1
  10. package/lib/components/brands/brand-card/info-section.d.ts +11 -0
  11. package/lib/components/brands/brand-card/info-section.d.ts.map +1 -0
  12. package/lib/components/brands/brand-card/info-section.js +4 -0
  13. package/lib/components/brands/brand-card/info-section.js.map +1 -0
  14. package/lib/components/brands/brand-card/single-action-button.d.ts +6 -0
  15. package/lib/components/brands/brand-card/single-action-button.d.ts.map +1 -0
  16. package/lib/components/brands/brand-card/single-action-button.js +34 -0
  17. package/lib/components/brands/brand-card/single-action-button.js.map +1 -0
  18. package/lib/components/brands/cards-grid/cards-grid.d.ts +2 -1
  19. package/lib/components/brands/cards-grid/cards-grid.d.ts.map +1 -1
  20. package/lib/components/brands/cards-grid/cards-grid.js +2 -3
  21. package/lib/components/brands/cards-grid/cards-grid.js.map +1 -1
  22. package/lib/components/brands/styles.module.less +3 -40
  23. package/lib/enums/brands.d.ts +4 -19
  24. package/lib/enums/brands.d.ts.map +1 -1
  25. package/lib/enums/brands.js +6 -1
  26. package/lib/enums/brands.js.map +1 -1
  27. package/lib/index.d.ts +3 -1
  28. package/lib/index.d.ts.map +1 -1
  29. package/lib/index.js +3 -1
  30. package/lib/index.js.map +1 -1
  31. package/lib/utils/interfaces.d.ts +22 -0
  32. package/lib/utils/interfaces.d.ts.map +1 -0
  33. package/lib/utils/interfaces.js +2 -0
  34. package/lib/utils/interfaces.js.map +1 -0
  35. package/lib/utils/mappers.d.ts +4 -0
  36. package/lib/utils/mappers.d.ts.map +1 -0
  37. package/lib/utils/mappers.js +13 -0
  38. package/lib/utils/mappers.js.map +1 -0
  39. package/package.json +2 -2
  40. package/src/components/brands/brand-card/actions-button-section.tsx +42 -0
  41. package/src/components/brands/brand-card/brand-card.tsx +38 -222
  42. package/src/components/brands/brand-card/info-section.tsx +32 -0
  43. package/src/components/brands/brand-card/single-action-button.tsx +84 -0
  44. package/src/components/brands/cards-grid/cards-grid.tsx +10 -6
  45. package/src/components/brands/styles.module.less +3 -40
  46. package/src/components/brands/styles.module.less.d.ts +1 -6
  47. package/src/enums/brands.ts +4 -22
  48. package/src/index.ts +3 -1
  49. package/src/utils/interfaces.ts +23 -0
  50. package/src/utils/mappers.ts +14 -0
  51. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.1.0](https://github.com/servicetitan/marketing/compare/@servicetitan/mpa-components@2.0.0...@servicetitan/mpa-components@2.1.0) (2025-04-17)
7
+
8
+ **Note:** Version bump only for package @servicetitan/mpa-components
9
+
10
+
11
+
12
+
13
+
14
+ # [2.0.0](https://github.com/servicetitan/marketing/compare/@servicetitan/mpa-components@1.11.0...@servicetitan/mpa-components@2.0.0) (2025-04-10)
15
+
16
+ **Note:** Version bump only for package @servicetitan/mpa-components
17
+
18
+
19
+
20
+
21
+
6
22
  # [1.11.0](https://github.com/servicetitan/marketing/compare/@servicetitan/mpa-components@1.10.0...@servicetitan/mpa-components@1.11.0) (2025-04-02)
7
23
 
8
24
  **Note:** Version bump only for package @servicetitan/mpa-components
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import { BrandAction } from '../../../utils/interfaces';
3
+ export declare const ActionsButtonSection: FC<{
4
+ actions: BrandAction | BrandAction[];
5
+ }>;
6
+ //# sourceMappingURL=actions-button-section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-button-section.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/actions-button-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC;IAClC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CACxC,CA+BA,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useHistory } from 'react-router-dom';
3
+ import { Menu } from '@servicetitan/anvil2';
4
+ import { SingleActionButtonSection } from './single-action-button';
5
+ export const ActionsButtonSection = ({ actions }) => {
6
+ const history = useHistory();
7
+ if (!Array.isArray(actions)) {
8
+ return _jsx(SingleActionButtonSection, { action: actions });
9
+ }
10
+ return (_jsx(Menu, { label: "Actions", className: "qa-brand-card-action-menu", size: "small", children: actions.map(action => {
11
+ const actionClick = () => {
12
+ if (action.action) {
13
+ action.action();
14
+ }
15
+ if (action.href) {
16
+ history.push(action.href);
17
+ }
18
+ };
19
+ return (_jsx(Menu.Item, { disabled: action.disabled, onClick: actionClick, className: "qa-brand-card-action-menu-item", label: action.name }, action.name));
20
+ }) }));
21
+ };
22
+ //# sourceMappingURL=actions-button-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-button-section.js","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/actions-button-section.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,MAAM,CAAC,MAAM,oBAAoB,GAE5B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACjB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAC,yBAAyB,IAAC,MAAM,EAAE,OAAO,GAAI,CAAC;IAC1D,CAAC;IAED,OAAO,CACH,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAC,2BAA2B,EAAC,IAAI,EAAC,OAAO,YACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAClB,MAAM,WAAW,GAAG,GAAG,EAAE;gBACrB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpB,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC,CAAC;YAEF,OAAO,CACH,KAAC,IAAI,CAAC,IAAI,IACN,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAEzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,MAAM,CAAC,IAAI,IAHb,MAAM,CAAC,IAAI,CAIlB,CACL,CAAC;QACN,CAAC,CAAC,GACC,CACV,CAAC;AACN,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { FC } from 'react';
2
- import { BrandCardProps } from '../../../enums/brands';
2
+ import { BrandCardProps } from '../../../utils/interfaces';
3
3
  export declare const BrandCard: FC<BrandCardProps>;
4
4
  //# sourceMappingURL=brand-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand-card.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/brand-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAiB9C,OAAO,EAAe,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMpE,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA4GxC,CAAC"}
1
+ {"version":3,"file":"brand-card.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/brand-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA+CxC,CAAC"}
@@ -1,61 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo, useState } from 'react';
3
- import { Link } from 'react-router-dom';
4
- import { ActionMenu, BodyText, Button, Card, Headline, Icon, Stack, Tag, Tooltip, } from '@servicetitan/design-system';
5
- import { DomainValidationStatus } from '@servicetitan/marketing-services-api/dist/settings/brand.mrk.api';
6
- import { tokens } from '@servicetitan/tokens/core';
2
+ import classNames from 'classnames';
3
+ import { Flex, Card, Avatar } from '@servicetitan/anvil2';
4
+ import { ActionsButtonSection } from './actions-button-section';
5
+ import { InfoSection } from './info-section';
7
6
  import * as Styles from '../styles.module.less';
8
7
  const BRAND_NAME_PLACEHOLDER = 'Assign Brand Name';
9
- export const BrandCard = ({ actions, domainValidationStatus, email, isDefault, isShared, logo, name, }) => {
10
- const [isOpen, setOpen] = useState(false);
11
- const actionsButtonSection = useMemo(() => {
12
- if (!Array.isArray(actions)) {
13
- return (_jsx(SingleActionButtonSection, { action: actions, domainValidationStatus: domainValidationStatus }));
14
- }
15
- const trigger = (_jsxs(Button, { outline: true, size: "small", onClick: () => setOpen(true), children: ["Actions ", _jsx(Icon, { name: "keyboard_arrow_down", size: 16 })] }));
16
- return (_jsx(ActionMenu, { trigger: trigger, open: isOpen, onClickOutside: () => setOpen(false), direction: "bl", children: actions.map(action => {
17
- if (action.href) {
18
- return (_jsx(Link, { to: action.href, children: _jsx(ActionMenu.Item, { disabled: action.disabled, children: _jsx(BodyText, { subdued: action.disabled, children: action.name }) }, action.name) }, action.name));
19
- }
20
- const actionClick = () => {
21
- setOpen(false);
22
- if (action.action) {
23
- action.action();
24
- }
25
- };
26
- return (_jsx(ActionMenu.Item, { disabled: action.disabled, onClick: actionClick, children: _jsx(BodyText, { subdued: action.disabled, children: action.name }) }, action.name));
27
- }) }));
28
- }, [isOpen, setOpen, actions, domainValidationStatus]);
8
+ export const BrandCard = ({ actions, email, isDefault, isShared, logo, name, hasError, }) => {
29
9
  const nameToShow = name || BRAND_NAME_PLACEHOLDER;
30
- return (_jsx(Card, { className: Styles.brandCard, status: domainValidationStatus === DomainValidationStatus.Error ? 'error' : 'default', children: _jsxs(Stack, { direction: "row", spacing: 2, className: Styles.cardContent, children: [_jsx(Stack.Item, { fill: true, children: _jsxs(Stack, { direction: "column", children: [logo && nameToShow !== 'Corporate Brand 2' ? (_jsx("img", { className: Styles.brandImg, src: logo, alt: name })) : (_jsx("div", { className: Styles.brandImgPlaceholder, children: _jsx(Icon, { name: "image", className: "c-neutral-90", size: 24 }) })), _jsxs(Stack, { direction: "column", className: "m-t-3", children: [_jsx(Headline, { el: "p", subdued: !name, className: "t-truncate-i m-0", title: nameToShow, children: nameToShow }), email && (_jsx(BodyText, { subdued: true, title: email, className: "t-truncate-i", children: email }))] })] }) }), _jsxs(Stack, { direction: "column", children: [actionsButtonSection, _jsx(CardTags, { isDefault: isDefault, isShared: isShared })] })] }) }));
31
- };
32
- const CardTags = ({ isDefault, isShared }) => {
33
- if (!isDefault && !isShared) {
34
- return null;
35
- }
36
- return (_jsxs(Stack, { direction: "column", alignItems: "flex-end", className: Styles.tags, children: [isShared && (_jsx(Tag, { className: Styles.corporateTag, color: "info", subtle: true, compact: true, children: "Corporate HQ" })), isDefault && (_jsx(Tag, { className: Styles.defaultTag, compact: true, children: "Default" }))] }));
37
- };
38
- const SingleActionButtonSection = ({ domainValidationStatus, action }) => {
39
- const validationStatusIcon = useMemo(() => {
40
- return _jsx(ValidationStatusIcon, { status: domainValidationStatus });
41
- }, [domainValidationStatus]);
42
- if (domainValidationStatus === DomainValidationStatus.Pending) {
43
- return (_jsxs(Stack, { spacing: 1, alignItems: "center", children: [_jsx(BodyText, { size: "small", children: "Validation In Process" }), validationStatusIcon] }));
44
- }
45
- return (_jsxs(Stack, { spacing: 2, alignItems: "center", children: [validationStatusIcon, action.isConfigured && (_jsx(Icon, { name: "check_circle", color: tokens.colorGreen500, size: 24 })), action.inProgress ? (_jsx(InProgressButton, { action: action })) : (_jsx(StandardButton, { action: action }))] }));
46
- };
47
- const StandardButton = ({ action }) => (_jsx(Tooltip, { text: action.disabled ? action.tooltipMessage : '', children: action.href ? (_jsx(Link, { to: action.href, children: _jsx(Button, { size: "small", primary: true, outline: true, disabled: action.disabled, children: action.name }) })) : (_jsx(Button, { size: "small", primary: true, onClick: action.action, outline: true, disabled: action.disabled, children: action.name })) }));
48
- const InProgressButton = ({ action }) => (_jsx(Tooltip, { text: action.disabled ? action.tooltipMessage : '', children: action.href ? (_jsx(Link, { to: action.href, children: _jsxs(Button, { size: "small", primary: true, text: true, className: "m-0 p-1", children: [_jsx(BodyText, { size: "small", className: "m-r-half", children: "Registration In Progress" }), _jsx(Icon, { name: "hourglass_full", color: tokens.colorBlue, size: 16 })] }) })) : (_jsxs(Button, { size: "small", primary: true, text: true, className: "m-0 p-1", onClick: action.action, children: [_jsx(BodyText, { size: "small", className: "m-r-1", children: "Registration In Progress" }), _jsx(Icon, { name: "hourglass_full", color: tokens.colorBlue, size: 16 })] })) }));
49
- const ValidationStatusIcon = ({ status }) => {
50
- switch (status) {
51
- case DomainValidationStatus.Error:
52
- return (_jsx(Tooltip, { direction: "t", text: "Error is detected in processing the Sender Domain validation. Please check and try again.", className: "cursor-pointer", children: _jsx(Icon, { name: "warning", color: tokens.colorRed500, size: 24 }) }));
53
- case DomainValidationStatus.Validated:
54
- return _jsx(Icon, { name: "check_circle", color: tokens.colorGreen500, size: 24 });
55
- case DomainValidationStatus.Pending:
56
- return _jsx(Icon, { name: "hourglass_full", color: tokens.colorBlue500, size: 24 });
57
- default:
58
- return null;
59
- }
10
+ return (_jsx(Card, { className: classNames({
11
+ [Styles.cardWithError]: hasError,
12
+ }, Styles.brandCard, 'qa-brand-card'), padding: "large", children: _jsxs(Flex, { className: Styles.cardContent, justifyContent: "space-between", direction: "column", gap: "6", children: [_jsxs(Flex, { justifyContent: "space-between", alignItems: "flex-start", className: "qa-brand-card-left-section", children: [_jsx(Avatar, { image: logo, name: nameToShow, size: "large" }), _jsx(ActionsButtonSection, { actions: actions })] }), _jsx(InfoSection, { name: name, nameToShow: nameToShow, email: email, isDefault: isDefault, isShared: isShared })] }) }));
60
13
  };
61
14
  //# sourceMappingURL=brand-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand-card.js","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/brand-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brand-card.js","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/brand-card.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAC1C,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,IAAI,IAAI,sBAAsB,CAAC;IAElD,OAAO,CACH,KAAC,IAAI,IACD,SAAS,EAAE,UAAU,CACjB;YACI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ;SACnC,EACD,MAAM,CAAC,SAAS,EAChB,eAAe,CAClB,EACD,OAAO,EAAC,OAAO,YAEf,MAAC,IAAI,IACD,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,cAAc,EAAC,eAAe,EAC9B,SAAS,EAAC,QAAQ,EAClB,GAAG,EAAC,GAAG,aAEP,MAAC,IAAI,IACD,cAAc,EAAC,eAAe,EAC9B,UAAU,EAAC,YAAY,EACvB,SAAS,EAAC,4BAA4B,aAEtC,KAAC,MAAM,IAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAC,OAAO,GAAG,EACtD,KAAC,oBAAoB,IAAC,OAAO,EAAE,OAAO,GAAI,IACvC,EAEP,KAAC,WAAW,IACR,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACpB,IACC,GACJ,CACV,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { FC } from 'react';
2
+ interface InfoSectionProps {
3
+ nameToShow: string;
4
+ name?: string;
5
+ email?: string;
6
+ isDefault?: boolean;
7
+ isShared?: boolean;
8
+ }
9
+ export declare const InfoSection: FC<InfoSectionProps>;
10
+ export {};
11
+ //# sourceMappingURL=info-section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-section.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/info-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAmB5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Chip, Flex, Text } from '@servicetitan/anvil2';
3
+ export const InfoSection = ({ nameToShow, email, isDefault, isShared }) => (_jsx(Flex, { direction: "column", gap: "4", children: _jsxs(Flex, { direction: "column", gap: "1", children: [_jsxs(Flex, { gap: "2", alignItems: "center", children: [_jsx(Text, { className: "t-truncate-i m-0", title: nameToShow, variant: "headline", el: "h3", children: nameToShow }), _jsxs(Flex, { gap: "1", children: [isDefault && _jsx(Chip, { label: "Default" }), isShared && _jsx(Chip, { color: "#b5deff", label: "Corporate HQ" })] })] }), email && (_jsx(Text, { subdued: true, title: email, className: "t-truncate-i", children: email }))] }) }));
4
+ //# sourceMappingURL=info-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-section.js","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/info-section.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAUxD,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAC7F,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,YAC5B,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,GAAG,aAC5B,MAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,aAC7B,KAAC,IAAI,IAAC,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAC,UAAU,EAAC,EAAE,EAAC,IAAI,YAC3E,UAAU,GACR,EACP,MAAC,IAAI,IAAC,GAAG,EAAC,GAAG,aACR,SAAS,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,GAAG,EACrC,QAAQ,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAC,cAAc,GAAG,IACvD,IACJ,EACN,KAAK,IAAI,CACN,KAAC,IAAI,IAAC,OAAO,QAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,cAAc,YAC/C,KAAK,GACH,CACV,IACE,GACJ,CACV,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { BrandAction } from '../../../utils/interfaces';
3
+ export declare const SingleActionButtonSection: FC<{
4
+ action: BrandAction;
5
+ }>;
6
+ //# sourceMappingURL=single-action-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-action-button.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/single-action-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAO9C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAIxD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC;IACvC,MAAM,EAAE,WAAW,CAAC;CACvB,CAmCA,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useHistory } from 'react-router-dom';
3
+ import HelpIcon from '@servicetitan/anvil2/assets/icons/material/round/help.svg';
4
+ import { Chip, Flex, Tooltip as TooltipA2, Button } from '@servicetitan/anvil2';
5
+ import { BrandActionChipColor, BrandActionChipLabel } from '../../../utils/mappers';
6
+ export const SingleActionButtonSection = ({ action }) => {
7
+ var _a;
8
+ const history = useHistory();
9
+ const handleClick = () => {
10
+ if (action.action) {
11
+ action.action();
12
+ }
13
+ if (action.href) {
14
+ history.push(action.href);
15
+ }
16
+ };
17
+ let buttonAppearance;
18
+ if (action.status === undefined) {
19
+ buttonAppearance = 'primary';
20
+ }
21
+ else if (!action.disabled) {
22
+ buttonAppearance = 'secondary';
23
+ }
24
+ return (_jsxs(Flex, { gap: "2", alignItems: "center", className: "qa-brand-card-single-action", children: [_jsx(ActionChip, { status: action.status, statusTooltip: action.statusTooltip }), _jsx(Button, { size: "small", onClick: handleClick, disabled: action.disabled, appearance: buttonAppearance, children: action.name }), action.disabled && (_jsx(DisabledActionHelper, { children: (_a = action.disableTooltipContent) === null || _a === void 0 ? void 0 : _a.call(action) }))] }));
25
+ };
26
+ const ActionChip = ({ status, statusTooltip, }) => {
27
+ if (status === undefined) {
28
+ return null;
29
+ }
30
+ const chip = (_jsx(Chip, { label: BrandActionChipLabel[status], color: BrandActionChipColor[status], size: "small" }));
31
+ return statusTooltip ? (_jsxs(TooltipA2, { children: [_jsx(TooltipA2.Trigger, { children: chip }), _jsx(TooltipA2.Content, { children: statusTooltip })] })) : (chip);
32
+ };
33
+ const DisabledActionHelper = ({ children }) => (_jsxs(TooltipA2, { children: [_jsx(TooltipA2.Trigger, { children: _jsx(Button, { icon: HelpIcon, size: "small" }) }), _jsx(TooltipA2.Content, { children: children })] }));
34
+ //# sourceMappingURL=single-action-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-action-button.js","sourceRoot":"","sources":["../../../../src/components/brands/brand-card/single-action-button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,QAAQ,MAAM,2DAA2D,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIhF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,MAAM,CAAC,MAAM,yBAAyB,GAEjC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;IAChB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,gBAA8C,CAAC;IACnD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,gBAAgB,GAAG,SAAS,CAAC;IACjC,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1B,gBAAgB,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,OAAO,CACH,MAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,6BAA6B,aACrE,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,GAAI,EAC1E,KAAC,MAAM,IACH,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,UAAU,EAAE,gBAAgB,YAE3B,MAAM,CAAC,IAAI,GACP,EACR,MAAM,CAAC,QAAQ,IAAI,CAChB,KAAC,oBAAoB,cAAE,MAAA,MAAM,CAAC,qBAAqB,sDAAI,GAAwB,CAClF,IACE,CACV,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,GAA0D,CAAC,EACvE,MAAM,EACN,aAAa,GAChB,EAAE,EAAE;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,CACT,KAAC,IAAI,IACD,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACnC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACnC,IAAI,EAAC,OAAO,GACd,CACL,CAAC;IAEF,OAAO,aAAa,CAAC,CAAC,CAAC,CACnB,MAAC,SAAS,eACN,KAAC,SAAS,CAAC,OAAO,cAAE,IAAI,GAAqB,EAC7C,KAAC,SAAS,CAAC,OAAO,cAAE,aAAa,GAAqB,IAC9C,CACf,CAAC,CAAC,CAAC,CACA,IAAI,CACP,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAClE,MAAC,SAAS,eACN,KAAC,SAAS,CAAC,OAAO,cACd,KAAC,MAAM,IAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,OAAO,GAAG,GACvB,EACpB,KAAC,SAAS,CAAC,OAAO,cAAE,QAAQ,GAAqB,IACzC,CACf,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FC } from 'react';
2
- import { BrandCardProps } from '../../../enums/brands';
2
+ import { BrandCardProps } from '../../../utils/interfaces';
3
3
  export declare const CardsGrid: FC<{
4
4
  brands: BrandCardProps[];
5
+ qaIdentifier: string;
5
6
  }>;
6
7
  //# sourceMappingURL=cards-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cards-grid.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/cards-grid/cards-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAMtD,CAAC"}
1
+ {"version":3,"file":"cards-grid.d.ts","sourceRoot":"","sources":["../../../../src/components/brands/cards-grid/cards-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACxB,CAMA,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
2
3
  import { Grid } from '@servicetitan/anvil2';
3
4
  import { BrandCard } from '../brand-card/brand-card';
4
5
  import * as Styles from '../styles.module.less';
5
- export const CardsGrid = ({ brands }) => (_jsx(Grid, { className: Styles.grid, gap: "6", children: brands.map(brand => {
6
- return _jsx(BrandCard, { ...brand }, brand.id);
7
- }) }));
6
+ export const CardsGrid = ({ brands, qaIdentifier }) => (_jsx(Grid, { className: classNames(Styles.grid, `qa-${qaIdentifier}-cards-grid`), gap: "6", children: brands.map(brand => (_jsx(BrandCard, { ...brand }, brand.id))) }));
8
7
  //# sourceMappingURL=cards-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cards-grid.js","sourceRoot":"","sources":["../../../../src/components/brands/cards-grid/cards-grid.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAAqC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACvE,KAAC,IAAI,IAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAC,GAAG,YAChC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChB,OAAO,KAAC,SAAS,OAAoB,KAAK,IAAnB,KAAK,CAAC,EAAE,CAAe,CAAC;IACnD,CAAC,CAAC,GACC,CACV,CAAC"}
1
+ {"version":3,"file":"cards-grid.js","sourceRoot":"","sources":["../../../../src/components/brands/cards-grid/cards-grid.tsx"],"names":[],"mappings":";AACA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAGjB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,IAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,YAAY,aAAa,CAAC,EAAE,GAAG,EAAC,GAAG,YAC7E,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACjB,KAAC,SAAS,OAAoB,KAAK,IAAnB,KAAK,CAAC,EAAE,CAAe,CAC1C,CAAC,GACC,CACV,CAAC"}
@@ -5,10 +5,6 @@
5
5
  @card-max-width: 700px;
6
6
  @max-number-of-cards: 3;
7
7
 
8
- .delete-tooltip {
9
- min-width: 327px;
10
- }
11
-
12
8
  .grid {
13
9
  grid-template-columns: repeat(auto-fill, minmax(@card-min-width, 1fr));
14
10
  max-width: calc(@card-max-width * @max-number-of-cards + @spacing-3 * 2);
@@ -27,47 +23,14 @@
27
23
  }
28
24
 
29
25
  .brand-card {
30
- height: 200px;
31
26
  min-width: @card-min-width;
32
27
  max-width: @card-max-width;
33
- box-sizing: border-box;
34
- background: inherit !important;
35
-
36
- :global(.CardSection) {
37
- height: 150px;
38
- background-color: @color-white;
39
- }
40
28
  }
41
29
 
42
30
  .card-content {
43
- height: 139px;
44
- }
45
-
46
- .brand-img {
47
- width: @spacing-6;
48
- height: @spacing-6;
49
- min-width: @spacing-6;
50
- min-height: @spacing-6;
51
- border-radius: @border-radius-circular;
52
- border: solid 1px @color-neutral-60;
53
- }
54
-
55
- .brand-img-placeholder {
56
- .brand-img();
57
- background-color: @color-neutral-60;
58
- }
59
-
60
- .tags {
61
- height: 41px;
62
- margin-bottom: 2px;
63
- margin-top: auto;
64
- }
65
-
66
- .default-tag {
67
- width: 53px;
31
+ width: 100%;
68
32
  }
69
33
 
70
- .corporate-tag {
71
- min-width: 86px;
72
- margin-bottom: @spacing-half;
34
+ .card-with-error {
35
+ border-color: @color-red-500;
73
36
  }
@@ -1,21 +1,6 @@
1
- import { DomainValidationStatus } from '@servicetitan/marketing-services-api/dist/settings/brand.mrk.api';
2
- export interface BrandAction {
3
- name: string;
4
- disabled?: boolean;
5
- tooltipMessage?: string;
6
- inProgress?: boolean;
7
- isConfigured?: boolean;
8
- href?: string;
9
- action?: () => void;
10
- }
11
- export interface BrandCardProps {
12
- id: string;
13
- actions: BrandAction | BrandAction[];
14
- logo?: string;
15
- name?: string;
16
- isDefault: boolean;
17
- email?: string;
18
- domainValidationStatus?: DomainValidationStatus;
19
- isShared: boolean;
1
+ export declare enum ActionStatus {
2
+ Error = 0,
3
+ Pending = 1,
4
+ Approved = 2
20
5
  }
21
6
  //# sourceMappingURL=brands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/enums/brands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../src/enums/brands.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACpB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,QAAQ,IAAA;CACX"}
@@ -1,2 +1,7 @@
1
- export {};
1
+ export var ActionStatus;
2
+ (function (ActionStatus) {
3
+ ActionStatus[ActionStatus["Error"] = 0] = "Error";
4
+ ActionStatus[ActionStatus["Pending"] = 1] = "Pending";
5
+ ActionStatus[ActionStatus["Approved"] = 2] = "Approved";
6
+ })(ActionStatus || (ActionStatus = {}));
2
7
  //# sourceMappingURL=brands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/enums/brands.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"brands.js","sourceRoot":"","sources":["../../src/enums/brands.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,iDAAK,CAAA;IACL,qDAAO,CAAA;IACP,uDAAQ,CAAA;AACZ,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './components/settings';
2
2
  export * from './components/campaign-actions';
3
- export * from './enums/brands';
3
+ export * from './components/settings';
4
4
  export * from './utils/helpers';
5
+ export * from './utils/interfaces';
6
+ export * from './enums/brands';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
package/lib/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './components/settings';
2
2
  export * from './components/campaign-actions';
3
- export * from './enums/brands';
3
+ export * from './components/settings';
4
4
  export * from './utils/helpers';
5
+ export * from './utils/interfaces';
6
+ export * from './enums/brands';
5
7
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { JSX } from 'react';
2
+ import { ActionStatus } from '../enums/brands';
3
+ export interface BrandAction {
4
+ name: string;
5
+ disabled?: boolean;
6
+ disableTooltipContent?: () => JSX.Element | string;
7
+ href?: string;
8
+ status?: ActionStatus;
9
+ statusTooltip?: string;
10
+ action?: () => void;
11
+ }
12
+ export interface BrandCardProps {
13
+ id: string;
14
+ hasError?: boolean;
15
+ actions: BrandAction | BrandAction[];
16
+ logo?: string;
17
+ name?: string;
18
+ isDefault: boolean;
19
+ email?: string;
20
+ isShared?: boolean;
21
+ }
22
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/utils/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/utils/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { ActionStatus } from '../enums/brands';
2
+ export declare const BrandActionChipLabel: Record<ActionStatus, string>;
3
+ export declare const BrandActionChipColor: Record<ActionStatus, string>;
4
+ //# sourceMappingURL=mappers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../src/utils/mappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAI7D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAI7D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ActionStatus } from '../enums/brands';
2
+ import { tokens } from '@servicetitan/tokens/core';
3
+ export const BrandActionChipLabel = {
4
+ [ActionStatus.Pending]: 'Pending',
5
+ [ActionStatus.Error]: 'Error',
6
+ [ActionStatus.Approved]: 'Complete',
7
+ };
8
+ export const BrandActionChipColor = {
9
+ [ActionStatus.Pending]: tokens.colorOrange200,
10
+ [ActionStatus.Error]: tokens.colorRed500,
11
+ [ActionStatus.Approved]: tokens.colorGreen200,
12
+ };
13
+ //# sourceMappingURL=mappers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../src/utils/mappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAC9D,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;IAC7B,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,UAAU;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAC9D,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc;IAC7C,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW;IACxC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,aAAa;CAChD,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": {
4
4
  "url": "https://github.com/servicetitan/marketing"
5
5
  },
6
- "version": "1.11.0",
6
+ "version": "2.1.0",
7
7
  "description": "",
8
8
  "main": "./lib/index.js",
9
9
  "typings": "./lib/index.d.ts",
@@ -34,5 +34,5 @@
34
34
  "cli": {
35
35
  "webpack": false
36
36
  },
37
- "gitHead": "cd109a383e221446aaa2fed378646ad14bd07a90"
37
+ "gitHead": "fc10244696665b2bc7e58fc2404e314da0013ad2"
38
38
  }
@@ -0,0 +1,42 @@
1
+ import type { FC } from 'react';
2
+ import { useHistory } from 'react-router-dom';
3
+
4
+ import { Menu } from '@servicetitan/anvil2';
5
+
6
+ import { SingleActionButtonSection } from './single-action-button';
7
+ import { BrandAction } from '../../../utils/interfaces';
8
+
9
+ export const ActionsButtonSection: FC<{
10
+ actions: BrandAction | BrandAction[];
11
+ }> = ({ actions }) => {
12
+ const history = useHistory();
13
+
14
+ if (!Array.isArray(actions)) {
15
+ return <SingleActionButtonSection action={actions} />;
16
+ }
17
+
18
+ return (
19
+ <Menu label="Actions" className="qa-brand-card-action-menu" size="small">
20
+ {actions.map(action => {
21
+ const actionClick = () => {
22
+ if (action.action) {
23
+ action.action();
24
+ }
25
+ if (action.href) {
26
+ history.push(action.href);
27
+ }
28
+ };
29
+
30
+ return (
31
+ <Menu.Item
32
+ disabled={action.disabled}
33
+ key={action.name}
34
+ onClick={actionClick}
35
+ className="qa-brand-card-action-menu-item"
36
+ label={action.name}
37
+ />
38
+ );
39
+ })}
40
+ </Menu>
41
+ );
42
+ };