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["default"] = 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 _toastedNotes = _interopRequireDefault(require("toasted-notes"));
|
17 |
|
18 | var _react = require("react");
|
19 |
|
20 | var _Alert = require("../Alert");
|
21 |
|
22 | var _ThemeProvider = _interopRequireWildcard(require("../ThemeProvider"));
|
23 |
|
24 | var _Box = _interopRequireDefault(require("../Box"));
|
25 |
|
26 | var _CloseButton = _interopRequireDefault(require("../CloseButton"));
|
27 |
|
28 |
|
29 | var Toast = function Toast(_ref) {
|
30 | var status = _ref.status,
|
31 | variant = _ref.variant,
|
32 | id = _ref.id,
|
33 | title = _ref.title,
|
34 | isClosable = _ref.isClosable,
|
35 | onClose = _ref.onClose,
|
36 | description = _ref.description,
|
37 | props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["status", "variant", "id", "title", "isClosable", "onClose", "description"]);
|
38 | return (0, _core.jsx)(_Alert.Alert, (0, _extends2["default"])({
|
39 | status: status,
|
40 | variant: variant,
|
41 | id: id,
|
42 | textAlign: "left",
|
43 | boxShadow: "lg",
|
44 | rounded: "md",
|
45 | alignItems: "start",
|
46 | m: 2,
|
47 | pr: 8
|
48 | }, props), (0, _core.jsx)(_Alert.AlertIcon, null), (0, _core.jsx)(_Box["default"], {
|
49 | flex: "1"
|
50 | }, title && (0, _core.jsx)(_Alert.AlertTitle, null, title), description && (0, _core.jsx)(_Alert.AlertDescription, null, description)), isClosable && (0, _core.jsx)(_CloseButton["default"], {
|
51 | size: "sm",
|
52 | onClick: onClose,
|
53 | position: "absolute",
|
54 | right: "4px",
|
55 | top: "4px"
|
56 | }));
|
57 | };
|
58 |
|
59 | function useToast() {
|
60 | var theme = (0, _ThemeProvider.useTheme)();
|
61 | var notify = (0, _react.useCallback)(function (_ref2) {
|
62 | var _ref2$position = _ref2.position,
|
63 | position = _ref2$position === void 0 ? "bottom" : _ref2$position,
|
64 | _ref2$duration = _ref2.duration,
|
65 | duration = _ref2$duration === void 0 ? 5000 : _ref2$duration,
|
66 | render = _ref2.render,
|
67 | title = _ref2.title,
|
68 | description = _ref2.description,
|
69 | status = _ref2.status,
|
70 | _ref2$variant = _ref2.variant,
|
71 | variant = _ref2$variant === void 0 ? "solid" : _ref2$variant,
|
72 | isClosable = _ref2.isClosable;
|
73 | var options = {
|
74 | position: position,
|
75 | duration: duration
|
76 | };
|
77 |
|
78 | if (render) {
|
79 | return _toastedNotes["default"].notify(function (_ref3) {
|
80 | var onClose = _ref3.onClose,
|
81 | id = _ref3.id;
|
82 | return (0, _core.jsx)(_ThemeProvider["default"], {
|
83 | theme: theme
|
84 | }, render({
|
85 | onClose: onClose,
|
86 | id: id
|
87 | }));
|
88 | }, options);
|
89 | }
|
90 |
|
91 | _toastedNotes["default"].notify(function (_ref4) {
|
92 | var onClose = _ref4.onClose,
|
93 | id = _ref4.id;
|
94 | return (0, _core.jsx)(_ThemeProvider["default"], {
|
95 | theme: theme
|
96 | }, (0, _core.jsx)(Toast, {
|
97 | onClose: onClose,
|
98 | id: id,
|
99 | title: title,
|
100 | description: description,
|
101 | status: status,
|
102 | variant: variant,
|
103 | isClosable: isClosable
|
104 | }));
|
105 | }, options);
|
106 | }, [theme]);
|
107 | return notify;
|
108 | }
|
109 |
|
110 | var _default = useToast;
|
111 | exports["default"] = _default; |
\ | No newline at end of file |