1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | exports.__esModule = true;
|
8 | exports.AlertIcon = exports.AlertDescription = exports.AlertTitle = exports.Alert = exports.statuses = void 0;
|
9 |
|
10 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11 |
|
12 | var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
13 |
|
14 | var _core = require("@emotion/core");
|
15 |
|
16 | var _react = require("react");
|
17 |
|
18 | var _Box = _interopRequireDefault(require("../Box"));
|
19 |
|
20 | var _Icon = _interopRequireDefault(require("../Icon"));
|
21 |
|
22 | var _styles = _interopRequireWildcard(require("./styles"));
|
23 |
|
24 |
|
25 | var statuses = {
|
26 | info: {
|
27 | icon: "info",
|
28 | color: "blue"
|
29 | },
|
30 | warning: {
|
31 | icon: "warning-2",
|
32 | color: "orange"
|
33 | },
|
34 | success: {
|
35 | icon: "check-circle",
|
36 | color: "green"
|
37 | },
|
38 | error: {
|
39 | icon: "warning",
|
40 | color: "red"
|
41 | }
|
42 | };
|
43 | exports.statuses = statuses;
|
44 | var AlertContext = (0, _react.createContext)();
|
45 |
|
46 | var useAlertContext = function useAlertContext() {
|
47 | var context = (0, _react.useContext)(AlertContext);
|
48 |
|
49 | if (context === undefined) {
|
50 | throw new Error("useAlertContext must be used within a AlertContextProvider");
|
51 | }
|
52 |
|
53 | return context;
|
54 | };
|
55 |
|
56 | var Alert = function Alert(_ref) {
|
57 | var _ref$status = _ref.status,
|
58 | status = _ref$status === void 0 ? "info" : _ref$status,
|
59 | _ref$variant = _ref.variant,
|
60 | variant = _ref$variant === void 0 ? "subtle" : _ref$variant,
|
61 | rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["status", "variant"]);
|
62 | var alertStyleProps = (0, _styles["default"])({
|
63 | variant: variant,
|
64 | color: statuses[status] && statuses[status]["color"]
|
65 | });
|
66 | var context = {
|
67 | status: status,
|
68 | variant: variant
|
69 | };
|
70 | return (0, _core.jsx)(AlertContext.Provider, {
|
71 | value: context
|
72 | }, (0, _core.jsx)(_Box["default"], (0, _extends2["default"])({
|
73 | role: "alert"
|
74 | }, alertStyleProps, rest)));
|
75 | };
|
76 |
|
77 | exports.Alert = Alert;
|
78 |
|
79 | var AlertTitle = function AlertTitle(props) {
|
80 | return (0, _core.jsx)(_Box["default"], (0, _extends2["default"])({
|
81 | fontWeight: "bold",
|
82 | lineHeight: "normal"
|
83 | }, props));
|
84 | };
|
85 |
|
86 | exports.AlertTitle = AlertTitle;
|
87 |
|
88 | var AlertDescription = function AlertDescription(props) {
|
89 | return (0, _core.jsx)(_Box["default"], props);
|
90 | };
|
91 |
|
92 | exports.AlertDescription = AlertDescription;
|
93 |
|
94 | var AlertIcon = function AlertIcon(props) {
|
95 | var _useAlertContext = useAlertContext(),
|
96 | status = _useAlertContext.status,
|
97 | variant = _useAlertContext.variant;
|
98 |
|
99 | var iconStyleProps = (0, _styles.useAlertIconStyle)({
|
100 | variant: variant,
|
101 | color: statuses[status] && statuses[status]["color"]
|
102 | });
|
103 | return (0, _core.jsx)(_Icon["default"]
|
104 | , (0, _extends2["default"])({
|
105 | mr: 3,
|
106 | size: 5,
|
107 | name: statuses[status] && statuses[status]["icon"]
|
108 | }, iconStyleProps, props));
|
109 | };
|
110 |
|
111 | exports.AlertIcon = AlertIcon; |
\ | No newline at end of file |