@blockle/blocks-react 2.2.1 → 2.3.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/components/feedback/Alert/Alert.d.ts +4 -4
- package/dist/components/feedback/Alert/Alert.d.ts.map +1 -1
- package/dist/components/feedback/Alert/Alert.js +8 -9
- package/dist/components/feedback/Toast/ToastContext.d.ts +2 -1
- package/dist/components/feedback/Toast/ToastContext.d.ts.map +1 -1
- package/dist/components/feedback/Toast/ToastProvider.d.ts.map +1 -1
- package/dist/components/feedback/Toast/ToastProvider.js +11 -3
- package/dist/components/feedback/Toast/useToast.d.ts +9 -0
- package/dist/components/feedback/Toast/useToast.d.ts.map +1 -0
- package/dist/components/feedback/Toast/useToast.js +35 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/package.json +1 -1
- package/dist/components/feedback/Toast/Toast.d.ts +0 -8
- package/dist/components/feedback/Toast/Toast.d.ts.map +0 -1
- package/dist/components/feedback/Toast/Toast.js +0 -36
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ComponentThemes } from '@blockle/blocks-core';
|
|
1
|
+
import { ComponentThemes, HTMLElementProps } from '@blockle/blocks-core';
|
|
2
2
|
type AlertTheme = ComponentThemes['alert'];
|
|
3
3
|
export type AlertProps = {
|
|
4
|
-
intent?: AlertTheme['variants']['intent'];
|
|
5
4
|
children?: React.ReactNode;
|
|
6
|
-
|
|
5
|
+
intent?: AlertTheme['variants']['intent'];
|
|
7
6
|
onRequestClose?: () => void;
|
|
8
|
-
|
|
7
|
+
ref?: React.RefObject<HTMLDivElement>;
|
|
8
|
+
} & HTMLElementProps<HTMLDivElement>;
|
|
9
9
|
export declare const Alert: React.FC<AlertProps>;
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=Alert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Alert/Alert.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Alert/Alert.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAO9B,KAAK,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;CACvC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAErC,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAsDtC,CAAC"}
|
|
@@ -8,24 +8,23 @@ import { closeButton } from "./Alert.css.js";
|
|
|
8
8
|
const Alert = ({
|
|
9
9
|
intent = "info",
|
|
10
10
|
children,
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
onRequestClose,
|
|
12
|
+
className,
|
|
13
|
+
...restProps
|
|
13
14
|
}) => {
|
|
14
15
|
const containerClassName = useComponentStyles("alert", {
|
|
15
16
|
base: true,
|
|
16
17
|
variants: { intent }
|
|
17
18
|
});
|
|
18
|
-
if (!open) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
19
|
return /* @__PURE__ */ jsxs(
|
|
22
20
|
Box,
|
|
23
21
|
{
|
|
24
22
|
role: "alert",
|
|
25
|
-
className: classnames(containerClassName),
|
|
23
|
+
className: classnames(containerClassName, className),
|
|
26
24
|
display: "flex",
|
|
27
25
|
alignItems: "center",
|
|
28
26
|
justifyContent: "space-between",
|
|
27
|
+
...restProps,
|
|
29
28
|
children: [
|
|
30
29
|
/* @__PURE__ */ jsx("div", { children }),
|
|
31
30
|
/* @__PURE__ */ jsx(
|
|
@@ -45,9 +44,9 @@ const Alert = ({
|
|
|
45
44
|
viewBox: "0 0 24 24",
|
|
46
45
|
fill: "none",
|
|
47
46
|
stroke: "currentColor",
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
strokeWidth: "2",
|
|
48
|
+
strokeLinecap: "round",
|
|
49
|
+
strokeLinejoin: "round",
|
|
51
50
|
children: [
|
|
52
51
|
/* @__PURE__ */ jsx("path", { stroke: "none", d: "M0 0h24v24H0z", fill: "none" }),
|
|
53
52
|
/* @__PURE__ */ jsx("path", { d: "M18 6l-12 12" }),
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { AlertProps } from '../Alert/Alert.js';
|
|
1
2
|
export type Toast = {
|
|
2
3
|
id: string;
|
|
3
4
|
duration?: number;
|
|
4
|
-
onRequestClose: () => void;
|
|
5
5
|
children?: React.ReactNode;
|
|
6
|
+
intent?: AlertProps['intent'];
|
|
6
7
|
};
|
|
7
8
|
export type ToastContextType = {
|
|
8
9
|
add: (toast: Toast) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastContext.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToastContext.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,YAAY,kDAA+C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/ToastProvider.tsx"],"names":[],"mappings":"AA2BA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EACL,aAAa,GACb,eAAe,GACf,cAAc,GACd,UAAU,GACV,YAAY,GACZ,WAAW,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwFtD,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { useState, useRef, useCallback, useMemo } from "react";
|
|
|
4
4
|
import { flushSync } from "react-dom";
|
|
5
5
|
import { Box } from "../../layout/Box/Box.js";
|
|
6
6
|
import { Stack } from "../../layout/Stack/Stack.js";
|
|
7
|
+
import { Alert } from "../Alert/Alert.js";
|
|
7
8
|
import { container } from "./Toast.css.js";
|
|
8
9
|
import { ToastContext } from "./ToastContext.js";
|
|
9
10
|
function makeTransition(transition) {
|
|
@@ -44,8 +45,11 @@ const ToastProvider = ({ children }) => {
|
|
|
44
45
|
setToasts(updateState);
|
|
45
46
|
});
|
|
46
47
|
if (toast.duration) {
|
|
48
|
+
const toastId = toast.id;
|
|
47
49
|
setTimeout(() => {
|
|
48
|
-
|
|
50
|
+
makeTransition(() => {
|
|
51
|
+
setToasts((prev) => prev.filter((toast2) => toast2.id !== toastId));
|
|
52
|
+
});
|
|
49
53
|
}, toast.duration);
|
|
50
54
|
}
|
|
51
55
|
}, []);
|
|
@@ -66,13 +70,17 @@ const ToastProvider = ({ children }) => {
|
|
|
66
70
|
insetBlockEnd: 0,
|
|
67
71
|
insetInline: 0,
|
|
68
72
|
padding: 2,
|
|
69
|
-
children: /* @__PURE__ */ jsx(Stack, { gap: 2, children: toasts.map(({ id, children: children2 }) => /* @__PURE__ */ jsx(
|
|
70
|
-
|
|
73
|
+
children: /* @__PURE__ */ jsx(Stack, { gap: 2, children: toasts.map(({ id, children: children2, intent }) => /* @__PURE__ */ jsx(
|
|
74
|
+
Alert,
|
|
71
75
|
{
|
|
76
|
+
intent,
|
|
72
77
|
className: container,
|
|
73
78
|
style: {
|
|
74
79
|
viewTransitionName: `toast-${id}`
|
|
75
80
|
},
|
|
81
|
+
onRequestClose: () => {
|
|
82
|
+
removeToast(id);
|
|
83
|
+
},
|
|
76
84
|
children: children2
|
|
77
85
|
},
|
|
78
86
|
id
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Toast } from './ToastContext.js';
|
|
2
|
+
export type ToastProps = Omit<Toast, 'id'> & {
|
|
3
|
+
id?: Toast['id'];
|
|
4
|
+
};
|
|
5
|
+
export declare const useToast: () => {
|
|
6
|
+
showToast: (props: ToastProps) => void;
|
|
7
|
+
removeToast: (id: string) => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=useToast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/useToast.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,mBAAmB,CAAC;AAE7D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG;IAC3C,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,QAAQ;uBAQT,UAAU;sBAYb,MAAM;CAad,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useContext, useCallback, useMemo } from "react";
|
|
2
|
+
import { ToastContext } from "./ToastContext.js";
|
|
3
|
+
const useToast = () => {
|
|
4
|
+
const context = useContext(ToastContext);
|
|
5
|
+
if (!context) {
|
|
6
|
+
throw new Error("Toast must be used within a ToastProvider");
|
|
7
|
+
}
|
|
8
|
+
const showToast = useCallback(
|
|
9
|
+
(props) => {
|
|
10
|
+
context.add({
|
|
11
|
+
children: props.children,
|
|
12
|
+
duration: props.duration,
|
|
13
|
+
id: props.id ?? crypto.randomUUID(),
|
|
14
|
+
intent: props.intent
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
[context]
|
|
18
|
+
);
|
|
19
|
+
const removeToast = useCallback(
|
|
20
|
+
(id) => {
|
|
21
|
+
context.remove(id);
|
|
22
|
+
},
|
|
23
|
+
[context]
|
|
24
|
+
);
|
|
25
|
+
return useMemo(
|
|
26
|
+
() => ({
|
|
27
|
+
showToast,
|
|
28
|
+
removeToast
|
|
29
|
+
}),
|
|
30
|
+
[showToast, removeToast]
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
useToast
|
|
35
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export { Alert, type AlertProps, } from './components/feedback/Alert/Alert.js';
|
|
|
6
6
|
export { Progress, type ProgressProps, } from './components/feedback/Progress/Progress.js';
|
|
7
7
|
export { Skeleton, type SkeletonProps, } from './components/feedback/Skeleton/Skeleton.js';
|
|
8
8
|
export { Spinner, type SpinnerProps, } from './components/feedback/Spinner/Spinner.js';
|
|
9
|
-
export { Toast, type ToastProps } from './components/feedback/Toast/Toast.js';
|
|
10
9
|
export { ToastProvider, type ToastProviderProps, } from './components/feedback/Toast/ToastProvider.js';
|
|
10
|
+
export { type ToastProps, useToast, } from './components/feedback/Toast/useToast.js';
|
|
11
11
|
export { Button, type ButtonProps } from './components/form/Button/Button.js';
|
|
12
12
|
export { Checkbox, type CheckboxProps, } from './components/form/Checkbox/Checkbox.js';
|
|
13
13
|
export { Label, type LabelProps } from './components/form/Label/Label.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,EACL,KAAK,UAAU,GAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,KAAK,EACL,KAAK,UAAU,GAChB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,KAAK,UAAU,EACf,QAAQ,GACT,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,KAAK,aAAa,GACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,SAAS,EACT,KAAK,cAAc,GACpB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EACL,MAAM,EACN,KAAK,WAAW,GACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,MAAM,EACN,KAAK,WAAW,GACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,yDAAyD,CAAC;AAEjE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,GAClB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6DAA6D,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,8 +6,8 @@ import { Alert } from "./components/feedback/Alert/Alert.js";
|
|
|
6
6
|
import { Progress } from "./components/feedback/Progress/Progress.js";
|
|
7
7
|
import { Skeleton } from "./components/feedback/Skeleton/Skeleton.js";
|
|
8
8
|
import { Spinner } from "./components/feedback/Spinner/Spinner.js";
|
|
9
|
-
import { Toast } from "./components/feedback/Toast/Toast.js";
|
|
10
9
|
import { ToastProvider } from "./components/feedback/Toast/ToastProvider.js";
|
|
10
|
+
import { useToast } from "./components/feedback/Toast/useToast.js";
|
|
11
11
|
import { Button } from "./components/form/Button/Button.js";
|
|
12
12
|
import { Checkbox } from "./components/form/Checkbox/Checkbox.js";
|
|
13
13
|
import { Label } from "./components/form/Label/Label.js";
|
|
@@ -62,7 +62,6 @@ export {
|
|
|
62
62
|
Text,
|
|
63
63
|
TextInput,
|
|
64
64
|
Textarea,
|
|
65
|
-
Toast,
|
|
66
65
|
ToastProvider,
|
|
67
66
|
Tooltip,
|
|
68
67
|
VisuallyHidden,
|
|
@@ -72,5 +71,6 @@ export {
|
|
|
72
71
|
useControlledValue,
|
|
73
72
|
useIsomorphicLayoutEffect,
|
|
74
73
|
useKeyboard,
|
|
75
|
-
usePreventBodyScroll
|
|
74
|
+
usePreventBodyScroll,
|
|
75
|
+
useToast
|
|
76
76
|
};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/Toast/Toast.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiCtC,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useId, useContext, useEffect } from "react";
|
|
3
|
-
import { ToastContext } from "./ToastContext.js";
|
|
4
|
-
const Toast = ({
|
|
5
|
-
children,
|
|
6
|
-
duration,
|
|
7
|
-
onRequestClose,
|
|
8
|
-
open
|
|
9
|
-
}) => {
|
|
10
|
-
const toastId = useId();
|
|
11
|
-
const context = useContext(ToastContext);
|
|
12
|
-
if (!context) {
|
|
13
|
-
throw new Error("Toast must be used within a ToastProvider");
|
|
14
|
-
}
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (open) {
|
|
17
|
-
context.add({
|
|
18
|
-
id: toastId,
|
|
19
|
-
duration,
|
|
20
|
-
children,
|
|
21
|
-
onRequestClose
|
|
22
|
-
});
|
|
23
|
-
} else {
|
|
24
|
-
context.remove(toastId);
|
|
25
|
-
}
|
|
26
|
-
}, [duration, open, children, onRequestClose, context, toastId]);
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
return () => {
|
|
29
|
-
context.remove(toastId);
|
|
30
|
-
};
|
|
31
|
-
}, [context, toastId]);
|
|
32
|
-
return null;
|
|
33
|
-
};
|
|
34
|
-
export {
|
|
35
|
-
Toast
|
|
36
|
-
};
|