@choice-ui/react 1.7.2 → 1.7.4
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.
|
@@ -105,6 +105,13 @@ interface ToastData {
|
|
|
105
105
|
onClose?: () => void;
|
|
106
106
|
onAutoClose?: () => void;
|
|
107
107
|
dismissible?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Show progress bar for this toast. Overrides Toaster's showProgress setting.
|
|
110
|
+
* - `true`: Always show progress bar
|
|
111
|
+
* - `false`: Never show progress bar
|
|
112
|
+
* - `undefined`: Use Toaster's showProgress setting
|
|
113
|
+
*/
|
|
114
|
+
progress?: boolean;
|
|
108
115
|
createdAt: number;
|
|
109
116
|
height?: number;
|
|
110
117
|
removing?: boolean;
|
|
@@ -133,6 +140,13 @@ interface ToastOptions {
|
|
|
133
140
|
onClose?: () => void;
|
|
134
141
|
onAutoClose?: () => void;
|
|
135
142
|
dismissible?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Show progress bar for this toast. Overrides Toaster's showProgress setting.
|
|
145
|
+
* - `true`: Always show progress bar
|
|
146
|
+
* - `false`: Never show progress bar
|
|
147
|
+
* - `undefined`: Use Toaster's showProgress setting
|
|
148
|
+
*/
|
|
149
|
+
progress?: boolean;
|
|
136
150
|
}
|
|
137
151
|
interface PromiseOptions<T> {
|
|
138
152
|
loading: string | (ToastOptions & {
|
|
@@ -72,7 +72,8 @@ const ToasterItem = memo(
|
|
|
72
72
|
const [swipeDirection, setSwipeDirection] = useState(null);
|
|
73
73
|
const swipeStartRef = useRef(null);
|
|
74
74
|
const toastDuration = toast.duration ?? defaultDuration;
|
|
75
|
-
const
|
|
75
|
+
const effectiveShowProgress = toast.progress ?? showProgress;
|
|
76
|
+
const shouldShowProgress = effectiveShowProgress && toastDuration > 0 && Number.isFinite(toastDuration) && toast.type !== "loading";
|
|
76
77
|
const offsetY = useMemo(() => {
|
|
77
78
|
if (expanded) {
|
|
78
79
|
let offset = 0;
|
|
@@ -30,6 +30,13 @@ export interface ToastData {
|
|
|
30
30
|
onClose?: () => void;
|
|
31
31
|
onAutoClose?: () => void;
|
|
32
32
|
dismissible?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Show progress bar for this toast. Overrides Toaster's showProgress setting.
|
|
35
|
+
* - `true`: Always show progress bar
|
|
36
|
+
* - `false`: Never show progress bar
|
|
37
|
+
* - `undefined`: Use Toaster's showProgress setting
|
|
38
|
+
*/
|
|
39
|
+
progress?: boolean;
|
|
33
40
|
createdAt: number;
|
|
34
41
|
height?: number;
|
|
35
42
|
removing?: boolean;
|
|
@@ -58,6 +65,13 @@ export interface ToastOptions {
|
|
|
58
65
|
onClose?: () => void;
|
|
59
66
|
onAutoClose?: () => void;
|
|
60
67
|
dismissible?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Show progress bar for this toast. Overrides Toaster's showProgress setting.
|
|
70
|
+
* - `true`: Always show progress bar
|
|
71
|
+
* - `false`: Never show progress bar
|
|
72
|
+
* - `undefined`: Use Toaster's showProgress setting
|
|
73
|
+
*/
|
|
74
|
+
progress?: boolean;
|
|
61
75
|
}
|
|
62
76
|
export interface ToasterState {
|
|
63
77
|
toasts: ToastData[];
|
|
@@ -81,6 +81,7 @@ function addToast(title, type, options = {}, toasterId = DEFAULT_TOASTER_ID) {
|
|
|
81
81
|
onClose: options.onClose,
|
|
82
82
|
onAutoClose: options.onAutoClose,
|
|
83
83
|
dismissible: options.dismissible ?? true,
|
|
84
|
+
progress: options.progress,
|
|
84
85
|
createdAt: Date.now()
|
|
85
86
|
};
|
|
86
87
|
let newToasts;
|
|
@@ -101,7 +101,7 @@ const ToasterRoot = memo(
|
|
|
101
101
|
var _a;
|
|
102
102
|
if (toast.type === "loading") return;
|
|
103
103
|
const toastDuration = toast.duration ?? duration;
|
|
104
|
-
if (toastDuration <= 0) return;
|
|
104
|
+
if (toastDuration <= 0 || !Number.isFinite(toastDuration)) return;
|
|
105
105
|
const hasTimer = timersRef.current.has(toast.id);
|
|
106
106
|
if (hovering) {
|
|
107
107
|
if (hasTimer) {
|
package/package.json
CHANGED