@jobber/components 4.49.2-JOB-80005.2 → 4.50.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/dist/Banner/Banner.d.ts +2 -1
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js +71 -9
- package/dist/DataList/DataList.d.ts +0 -1
- package/dist/DataList/DataList.types.d.ts +0 -1
- package/dist/DataList/index.js +1 -10
- package/package.json +3 -3
- package/dist/Banner-ecd9a7cf.js +0 -76
package/dist/Banner/Banner.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { IconNames } from "@jobber/design";
|
|
3
3
|
import { ButtonProps } from "../Button";
|
|
4
4
|
export type BannerType = "notice" | "success" | "warning" | "error";
|
|
5
|
-
|
|
5
|
+
interface BannerProps {
|
|
6
6
|
readonly children: ReactNode;
|
|
7
7
|
readonly type: BannerType;
|
|
8
8
|
/**
|
|
@@ -21,3 +21,4 @@ export interface BannerProps {
|
|
|
21
21
|
onDismiss?(): void;
|
|
22
22
|
}
|
|
23
23
|
export declare function Banner({ children, type, primaryAction, dismissible, icon, onDismiss, }: BannerProps): JSX.Element;
|
|
24
|
+
export {};
|
package/dist/Banner/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Banner, BannerType
|
|
1
|
+
export { Banner, BannerType } from "./Banner";
|
package/dist/Banner/index.js
CHANGED
|
@@ -2,18 +2,80 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('
|
|
9
|
-
require('../
|
|
10
|
-
require('../
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classnames = require('classnames');
|
|
7
|
+
var jobberHooks = require('@jobber/hooks/useResizeObserver');
|
|
8
|
+
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
9
|
+
var Icon = require('../Icon-405a216c.js');
|
|
10
|
+
var Text = require('../Text-54334431.js');
|
|
11
|
+
var Button = require('../Button-db6114a6.js');
|
|
11
12
|
require('@jobber/design');
|
|
12
|
-
require('../Text-54334431.js');
|
|
13
13
|
require('../Typography-83915c54.js');
|
|
14
|
-
require('../Button-db6114a6.js');
|
|
15
14
|
require('react-router-dom');
|
|
16
15
|
|
|
16
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
17
|
|
|
18
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
var css_248z$1 = ".meuT8gYQPJU- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n padding: calc(16px * 1);\n padding: var(--space-base);\n color: rgb(66, 78, 86);\n color: var(--color-text);\n background-color: rgb(244, 244, 244);\n background-color: var(--color-surface--background);\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.y4BapyZr-fo- > a {\n color: rgb(66, 78, 86);\n color: var(--color-text);\n}\n\n.y4BapyZr-fo- > a:hover {\n color: rgb(1, 41, 57);\n color: var(--color-blue);\n}\n\n._6v1woNSLEvc- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (max-width: 489.98px) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n@media (--small-screens-and-below) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n.y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._6v1woNSLEvc- > *:last-child {\n margin-bottom: 0;\n}\n\n.bocgLmEhcTU- .y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n}\n\n.rtNjEzmABX4- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n@media (max-width: 489.98px) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n@media (--small-screens-and-below) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n.lunQ5SOfyLg- {\n margin: calc((16px / 8) * -1) 0;\n margin: calc(calc(16px / 8) * -1) 0;\n margin: calc(var(--space-smallest) * -1) 0;\n padding: calc(16px / 8);\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n.lunQ5SOfyLg-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n.lunQ5SOfyLg-:focus {\n box-shadow: 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
|
|
22
|
+
var styles = {"banner":"meuT8gYQPJU-","bannerChildren":"y4BapyZr-fo-","bannerContent":"_6v1woNSLEvc-","medium":"bocgLmEhcTU-","bannerAction":"rtNjEzmABX4-","closeButton":"lunQ5SOfyLg-"};
|
|
23
|
+
styleInject_es.styleInject(css_248z$1);
|
|
24
|
+
|
|
25
|
+
var css_248z = ".wWW-2T7rCV0- {\n background-color: rgb(226, 241, 250);\n background-color: var(--color-informative--surface);\n}\n\n/* Our Banner \"surface\" colors should be lighter than they are so we're leaving the following alone for now */\n\n._7h8FUHIkVjg- {\n background-color: rgb(203, 223, 159);\n background-color: var(--color-green--lighter);\n}\n\n.d5fXcE1L0lc- {\n background-color: rgb(241, 231, 159);\n background-color: var(--color-yellow--lighter);\n}\n\n.oYaw-T3c0IU- {\n background-color: rgb(255, 206, 194);\n background-color: var(--color-red--lighter);\n}\n";
|
|
26
|
+
var types = {"notice":"wWW-2T7rCV0-","success":"_7h8FUHIkVjg-","warning":"d5fXcE1L0lc-","error":"oYaw-T3c0IU-"};
|
|
27
|
+
styleInject_es.styleInject(css_248z);
|
|
28
|
+
|
|
29
|
+
function BannerIcon({ icon }) {
|
|
30
|
+
return React__default["default"].createElement(Icon.Icon, { name: icon, color: "greyBlueDark" });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function Banner({ children, type, primaryAction, dismissible = true, icon, onDismiss, }) {
|
|
34
|
+
const [showBanner, setShowBanner] = React.useState(true);
|
|
35
|
+
const bannerWidths = {
|
|
36
|
+
small: 320,
|
|
37
|
+
medium: 480,
|
|
38
|
+
};
|
|
39
|
+
const [bannerRef, { width: bannerWidth = bannerWidths.small }] = jobberHooks.useResizeObserver({
|
|
40
|
+
widths: bannerWidths,
|
|
41
|
+
});
|
|
42
|
+
const iconColors = {
|
|
43
|
+
notice: "informative",
|
|
44
|
+
success: "success",
|
|
45
|
+
warning: "warning",
|
|
46
|
+
error: "critical",
|
|
47
|
+
};
|
|
48
|
+
if (primaryAction != undefined) {
|
|
49
|
+
primaryAction = Object.assign({
|
|
50
|
+
size: "small",
|
|
51
|
+
type: "tertiary",
|
|
52
|
+
variation: type === "notice" ? "learning" : "work",
|
|
53
|
+
}, primaryAction);
|
|
54
|
+
}
|
|
55
|
+
const bannerClassNames = classnames__default["default"](styles.banner, types[type], {
|
|
56
|
+
[styles.medium]: bannerWidth >= bannerWidths.medium,
|
|
57
|
+
});
|
|
58
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, showBanner && (React__default["default"].createElement("div", { className: bannerClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
|
|
59
|
+
React__default["default"].createElement("div", { className: styles.bannerContent },
|
|
60
|
+
icon && React__default["default"].createElement(BannerIcon, { icon: icon }),
|
|
61
|
+
React__default["default"].createElement("div", { className: styles.bannerChildren },
|
|
62
|
+
React__default["default"].createElement(BannerChildren, null, children)),
|
|
63
|
+
primaryAction && (React__default["default"].createElement("div", { className: styles.bannerAction },
|
|
64
|
+
React__default["default"].createElement(Button.Button, Object.assign({}, primaryAction))))),
|
|
65
|
+
dismissible && (React__default["default"].createElement("button", { className: styles.closeButton, onClick: handleClose, "aria-label": "Close this notification" },
|
|
66
|
+
React__default["default"].createElement(Icon.Icon, { name: "cross", color: iconColors[type] })))))));
|
|
67
|
+
function handleClose() {
|
|
68
|
+
setShowBanner(!showBanner);
|
|
69
|
+
onDismiss && onDismiss();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function BannerChildren({ children }) {
|
|
73
|
+
if (!children)
|
|
74
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
75
|
+
if (children && typeof children === "string") {
|
|
76
|
+
return React__default["default"].createElement(Text.Text, null, children);
|
|
77
|
+
}
|
|
78
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, children);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.Banner = Banner;
|
|
@@ -158,7 +158,6 @@ export interface DataListContextProps<T extends DataListObject> extends DataList
|
|
|
158
158
|
readonly layoutComponents?: ReactElement<DataListLayoutProps<T>>[];
|
|
159
159
|
readonly itemActionComponent?: ReactElement<DataListItemActionsProps<T>>;
|
|
160
160
|
readonly bulkActionsComponent?: ReactElement<DataListItemActionsProps<T>>;
|
|
161
|
-
readonly bannerComponent?: ReactElement;
|
|
162
161
|
readonly layoutBreakpoints: Breakpoints[];
|
|
163
162
|
readonly registerLayoutBreakpoints: (breakpoint: Breakpoints) => void;
|
|
164
163
|
readonly layouts: {
|
package/dist/DataList/index.js
CHANGED
|
@@ -37,7 +37,6 @@ var debounce = require('lodash/debounce');
|
|
|
37
37
|
var InputText = require('../InputText-ab237501.js');
|
|
38
38
|
var Spinner = require('../Spinner-9d8fc7ff.js');
|
|
39
39
|
var Icon = require('../Icon-405a216c.js');
|
|
40
|
-
var Banner = require('../Banner-ecd9a7cf.js');
|
|
41
40
|
require('uuid');
|
|
42
41
|
require('react-hook-form');
|
|
43
42
|
require('../ButtonDismiss-1ccb84ec.js');
|
|
@@ -45,7 +44,6 @@ require('lodash/sortBy');
|
|
|
45
44
|
require('@jobber/hooks/useLiveAnnounce');
|
|
46
45
|
require('../FormField-fa9254dc.js');
|
|
47
46
|
require('../InputValidation-377d6c62.js');
|
|
48
|
-
require('@jobber/hooks/useResizeObserver');
|
|
49
47
|
|
|
50
48
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
51
49
|
|
|
@@ -999,14 +997,12 @@ function DataList(_a) {
|
|
|
999
997
|
const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
|
|
1000
998
|
const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
|
|
1001
999
|
const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
|
|
1002
|
-
const bannerComponent = getCompoundComponent(props.children, Banner.Banner);
|
|
1003
1000
|
return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
|
|
1004
1001
|
filterComponent,
|
|
1005
1002
|
layoutComponents,
|
|
1006
1003
|
emptyStateComponents,
|
|
1007
1004
|
itemActionComponent,
|
|
1008
1005
|
bulkActionsComponent,
|
|
1009
|
-
bannerComponent,
|
|
1010
1006
|
layoutBreakpoints,
|
|
1011
1007
|
registerLayoutBreakpoints,
|
|
1012
1008
|
layouts,
|
|
@@ -1022,7 +1018,7 @@ function DataList(_a) {
|
|
|
1022
1018
|
}
|
|
1023
1019
|
}
|
|
1024
1020
|
function InternalDataList() {
|
|
1025
|
-
const { data, title, totalCount, loadingState = "none", layoutComponents,
|
|
1021
|
+
const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
|
|
1026
1022
|
const backToTopRef = React.useRef(null);
|
|
1027
1023
|
const initialLoading = loadingState === "initial";
|
|
1028
1024
|
const showEmptyState = !initialLoading && data.length === 0;
|
|
@@ -1036,7 +1032,6 @@ function InternalDataList() {
|
|
|
1036
1032
|
React__default["default"].createElement("div", { className: styles$e.headerFilters },
|
|
1037
1033
|
React__default["default"].createElement(InternalDataListFilters, null),
|
|
1038
1034
|
React__default["default"].createElement(InternalDataListSearch, null)),
|
|
1039
|
-
bannerComponent,
|
|
1040
1035
|
React__default["default"].createElement(DataListHeader, null)),
|
|
1041
1036
|
initialLoading && React__default["default"].createElement(DataListLoadingState, null),
|
|
1042
1037
|
showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
|
|
@@ -1103,9 +1098,5 @@ DataList.ItemAction = DataListAction;
|
|
|
1103
1098
|
DataList.BatchAction = function DataListBatchAction(props) {
|
|
1104
1099
|
return React__default["default"].createElement(DataListAction, Object.assign({}, props));
|
|
1105
1100
|
};
|
|
1106
|
-
/**
|
|
1107
|
-
* Defines a banner that is going to rendered between the filters and the header.
|
|
1108
|
-
*/
|
|
1109
|
-
DataList.Banner = Banner.Banner;
|
|
1110
1101
|
|
|
1111
1102
|
exports.DataList = DataList;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.50.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@jobber/design": "^0.46.0",
|
|
23
|
-
"@jobber/formatters": "
|
|
23
|
+
"@jobber/formatters": "*",
|
|
24
24
|
"@jobber/hooks": "^2.6.1",
|
|
25
25
|
"@popperjs/core": "^2.0.6",
|
|
26
26
|
"@std-proposal/temporal": "0.0.1",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"> 1%",
|
|
85
85
|
"IE 10"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "c1696e9d61aa0f7d34d97703337b96569be0589a"
|
|
88
88
|
}
|
package/dist/Banner-ecd9a7cf.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var classnames = require('classnames');
|
|
5
|
-
var jobberHooks = require('@jobber/hooks/useResizeObserver');
|
|
6
|
-
var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
|
|
7
|
-
var Icon = require('./Icon-405a216c.js');
|
|
8
|
-
var Text = require('./Text-54334431.js');
|
|
9
|
-
var Button = require('./Button-db6114a6.js');
|
|
10
|
-
|
|
11
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
-
|
|
13
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
|
-
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
15
|
-
|
|
16
|
-
var css_248z$1 = ".meuT8gYQPJU- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n padding: calc(16px * 1);\n padding: var(--space-base);\n color: rgb(66, 78, 86);\n color: var(--color-text);\n background-color: rgb(244, 244, 244);\n background-color: var(--color-surface--background);\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.y4BapyZr-fo- > a {\n color: rgb(66, 78, 86);\n color: var(--color-text);\n}\n\n.y4BapyZr-fo- > a:hover {\n color: rgb(1, 41, 57);\n color: var(--color-blue);\n}\n\n._6v1woNSLEvc- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (max-width: 489.98px) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n@media (--small-screens-and-below) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n.y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._6v1woNSLEvc- > *:last-child {\n margin-bottom: 0;\n}\n\n.bocgLmEhcTU- .y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n}\n\n.rtNjEzmABX4- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n@media (max-width: 489.98px) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n@media (--small-screens-and-below) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n.lunQ5SOfyLg- {\n margin: calc((16px / 8) * -1) 0;\n margin: calc(calc(16px / 8) * -1) 0;\n margin: calc(var(--space-smallest) * -1) 0;\n padding: calc(16px / 8);\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n.lunQ5SOfyLg-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n.lunQ5SOfyLg-:focus {\n box-shadow: 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
|
|
17
|
-
var styles = {"banner":"meuT8gYQPJU-","bannerChildren":"y4BapyZr-fo-","bannerContent":"_6v1woNSLEvc-","medium":"bocgLmEhcTU-","bannerAction":"rtNjEzmABX4-","closeButton":"lunQ5SOfyLg-"};
|
|
18
|
-
styleInject_es.styleInject(css_248z$1);
|
|
19
|
-
|
|
20
|
-
var css_248z = ".wWW-2T7rCV0- {\n background-color: rgb(226, 241, 250);\n background-color: var(--color-informative--surface);\n}\n\n/* Our Banner \"surface\" colors should be lighter than they are so we're leaving the following alone for now */\n\n._7h8FUHIkVjg- {\n background-color: rgb(203, 223, 159);\n background-color: var(--color-green--lighter);\n}\n\n.d5fXcE1L0lc- {\n background-color: rgb(241, 231, 159);\n background-color: var(--color-yellow--lighter);\n}\n\n.oYaw-T3c0IU- {\n background-color: rgb(255, 206, 194);\n background-color: var(--color-red--lighter);\n}\n";
|
|
21
|
-
var types = {"notice":"wWW-2T7rCV0-","success":"_7h8FUHIkVjg-","warning":"d5fXcE1L0lc-","error":"oYaw-T3c0IU-"};
|
|
22
|
-
styleInject_es.styleInject(css_248z);
|
|
23
|
-
|
|
24
|
-
function BannerIcon({ icon }) {
|
|
25
|
-
return React__default["default"].createElement(Icon.Icon, { name: icon, color: "greyBlueDark" });
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function Banner({ children, type, primaryAction, dismissible = true, icon, onDismiss, }) {
|
|
29
|
-
const [showBanner, setShowBanner] = React.useState(true);
|
|
30
|
-
const bannerWidths = {
|
|
31
|
-
small: 320,
|
|
32
|
-
medium: 480,
|
|
33
|
-
};
|
|
34
|
-
const [bannerRef, { width: bannerWidth = bannerWidths.small }] = jobberHooks.useResizeObserver({
|
|
35
|
-
widths: bannerWidths,
|
|
36
|
-
});
|
|
37
|
-
const iconColors = {
|
|
38
|
-
notice: "informative",
|
|
39
|
-
success: "success",
|
|
40
|
-
warning: "warning",
|
|
41
|
-
error: "critical",
|
|
42
|
-
};
|
|
43
|
-
if (primaryAction != undefined) {
|
|
44
|
-
primaryAction = Object.assign({
|
|
45
|
-
size: "small",
|
|
46
|
-
type: "tertiary",
|
|
47
|
-
variation: type === "notice" ? "learning" : "work",
|
|
48
|
-
}, primaryAction);
|
|
49
|
-
}
|
|
50
|
-
const bannerClassNames = classnames__default["default"](styles.banner, types[type], {
|
|
51
|
-
[styles.medium]: bannerWidth >= bannerWidths.medium,
|
|
52
|
-
});
|
|
53
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, showBanner && (React__default["default"].createElement("div", { className: bannerClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
|
|
54
|
-
React__default["default"].createElement("div", { className: styles.bannerContent },
|
|
55
|
-
icon && React__default["default"].createElement(BannerIcon, { icon: icon }),
|
|
56
|
-
React__default["default"].createElement("div", { className: styles.bannerChildren },
|
|
57
|
-
React__default["default"].createElement(BannerChildren, null, children)),
|
|
58
|
-
primaryAction && (React__default["default"].createElement("div", { className: styles.bannerAction },
|
|
59
|
-
React__default["default"].createElement(Button.Button, Object.assign({}, primaryAction))))),
|
|
60
|
-
dismissible && (React__default["default"].createElement("button", { className: styles.closeButton, onClick: handleClose, "aria-label": "Close this notification" },
|
|
61
|
-
React__default["default"].createElement(Icon.Icon, { name: "cross", color: iconColors[type] })))))));
|
|
62
|
-
function handleClose() {
|
|
63
|
-
setShowBanner(!showBanner);
|
|
64
|
-
onDismiss && onDismiss();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function BannerChildren({ children, }) {
|
|
68
|
-
if (!children)
|
|
69
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
70
|
-
if (children && typeof children === "string") {
|
|
71
|
-
return React__default["default"].createElement(Text.Text, null, children);
|
|
72
|
-
}
|
|
73
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null, children);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
exports.Banner = Banner;
|