@snack-uikit/toaster 0.8.19 → 0.9.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/CHANGELOG.md +11 -0
- package/README.md +74 -37
- package/dist/cjs/components/ToastSystemEvent/styles.module.css +2 -3
- package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +59 -0
- package/dist/cjs/components/ToastUpload/ToastUpload.js +132 -0
- package/dist/cjs/components/ToastUpload/constants.d.ts +16 -0
- package/dist/cjs/components/ToastUpload/constants.js +26 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +32 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.js +25 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +32 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +28 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +25 -0
- package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +33 -0
- package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
- package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.js +90 -0
- package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.js +25 -0
- package/dist/cjs/components/ToastUpload/helperComponents/FileItem/styles.module.css +87 -0
- package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +7 -0
- package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +43 -0
- package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.js +25 -0
- package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
- package/dist/cjs/components/ToastUpload/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/index.js +25 -0
- package/dist/cjs/components/ToastUpload/styles.module.css +111 -0
- package/dist/cjs/components/ToastUpload/types.d.ts +55 -0
- package/dist/cjs/components/ToastUpload/types.js +5 -0
- package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/utils/formatPercent.js +8 -0
- package/dist/cjs/components/ToastUpload/utils/index.d.ts +1 -0
- package/dist/cjs/components/ToastUpload/utils/index.js +25 -0
- package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.js +2 -1
- package/dist/cjs/constants.d.ts +2 -4
- package/dist/cjs/constants.js +10 -2
- package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
- package/dist/cjs/helpers.d.ts +4 -0
- package/dist/cjs/helpers.js +42 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/testIds.d.ts +14 -0
- package/dist/cjs/testIds.js +16 -1
- package/dist/cjs/types.d.ts +9 -1
- package/dist/esm/components/ToastSystemEvent/styles.module.css +2 -3
- package/dist/esm/components/ToastUpload/ToastUpload.d.ts +59 -0
- package/dist/esm/components/ToastUpload/ToastUpload.js +45 -0
- package/dist/esm/components/ToastUpload/constants.d.ts +16 -0
- package/dist/esm/components/ToastUpload/constants.js +20 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +18 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.js +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +32 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +5 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +33 -0
- package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
- package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.js +26 -0
- package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.js +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/FileItem/styles.module.css +87 -0
- package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +7 -0
- package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +16 -0
- package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.js +1 -0
- package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
- package/dist/esm/components/ToastUpload/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/index.js +1 -0
- package/dist/esm/components/ToastUpload/styles.module.css +111 -0
- package/dist/esm/components/ToastUpload/types.d.ts +55 -0
- package/dist/esm/components/ToastUpload/types.js +1 -0
- package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +1 -0
- package/dist/esm/components/ToastUpload/utils/formatPercent.js +1 -0
- package/dist/esm/components/ToastUpload/utils/index.d.ts +1 -0
- package/dist/esm/components/ToastUpload/utils/index.js +1 -0
- package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/constants.d.ts +2 -4
- package/dist/esm/constants.js +8 -0
- package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
- package/dist/esm/helpers.d.ts +4 -0
- package/dist/esm/helpers.js +42 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -0
- package/dist/esm/testIds.d.ts +14 -0
- package/dist/esm/testIds.js +15 -0
- package/dist/esm/types.d.ts +9 -1
- package/package.json +10 -6
- package/src/components/ToastSystemEvent/styles.module.scss +2 -2
- package/src/components/ToastUpload/ToastUpload.tsx +182 -0
- package/src/components/ToastUpload/constants.ts +26 -0
- package/src/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.tsx +10 -0
- package/src/components/ToastUpload/helperComponents/ButtonIcon/index.ts +1 -0
- package/src/components/ToastUpload/helperComponents/ButtonIcon/styles.module.scss +43 -0
- package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.tsx +23 -0
- package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/index.ts +1 -0
- package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.scss +38 -0
- package/src/components/ToastUpload/helperComponents/FileItem/FileItem.tsx +83 -0
- package/src/components/ToastUpload/helperComponents/FileItem/index.ts +1 -0
- package/src/components/ToastUpload/helperComponents/FileItem/styles.module.scss +91 -0
- package/src/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.tsx +39 -0
- package/src/components/ToastUpload/helperComponents/LoadingStatus/index.ts +1 -0
- package/src/components/ToastUpload/helperComponents/LoadingStatus/styles.module.scss +5 -0
- package/src/components/ToastUpload/index.ts +1 -0
- package/src/components/ToastUpload/styles.module.scss +121 -0
- package/src/components/ToastUpload/types.ts +62 -0
- package/src/components/ToastUpload/utils/formatPercent.ts +1 -0
- package/src/components/ToastUpload/utils/index.ts +1 -0
- package/src/components/ToasterContainer/styles.module.scss +1 -1
- package/src/components/index.ts +1 -0
- package/src/constants.ts +9 -1
- package/src/helpers.tsx +38 -0
- package/src/index.ts +2 -10
- package/src/testIds.ts +17 -0
- package/src/types.ts +7 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { LinkProps } from '@snack-uikit/link';
|
|
2
|
+
import { ProgressBarProps } from '@snack-uikit/progress-bar';
|
|
3
|
+
import { ValueOf } from '@snack-uikit/utils';
|
|
4
|
+
|
|
5
|
+
import { TOAST_UPLOAD_ITEM_STATUS, TOAST_UPLOAD_STATUS } from './constants';
|
|
6
|
+
|
|
7
|
+
export type ToastUploadStatus = ValueOf<typeof TOAST_UPLOAD_STATUS>;
|
|
8
|
+
|
|
9
|
+
export type ToastUploadItemStatus = ValueOf<typeof TOAST_UPLOAD_ITEM_STATUS>;
|
|
10
|
+
|
|
11
|
+
export type ToastUploadStateSubscription<T> = (subscription: (newValue: T) => void) => () => void;
|
|
12
|
+
export type WithStateSubscription<T> = {
|
|
13
|
+
/**Позволяет подписываться на изменения процесса загрузки файла внутри конпонента,
|
|
14
|
+
* тем самым обновляет элементы не зависимо от всего списка
|
|
15
|
+
* (можно использовать для улучшения производительности из-за частых обновлений)
|
|
16
|
+
*/
|
|
17
|
+
subscribeToState?: ToastUploadStateSubscription<Partial<T>>;
|
|
18
|
+
} & T;
|
|
19
|
+
|
|
20
|
+
export type ToastUploadItemLink = Pick<LinkProps, 'target' | 'href' | 'onClick' | 'text'>;
|
|
21
|
+
|
|
22
|
+
export type UploadActions = {
|
|
23
|
+
onCancel?: () => void;
|
|
24
|
+
onPause?: () => void;
|
|
25
|
+
onRetry?: () => void;
|
|
26
|
+
onContinue?: () => void;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type UploadItem = WithStateSubscription<{
|
|
30
|
+
/**
|
|
31
|
+
* Уникальный id элемента
|
|
32
|
+
*/
|
|
33
|
+
id?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Название элемента
|
|
36
|
+
*/
|
|
37
|
+
title: string;
|
|
38
|
+
/**
|
|
39
|
+
* Статус загрузки
|
|
40
|
+
*/
|
|
41
|
+
status: ToastUploadItemStatus;
|
|
42
|
+
/**
|
|
43
|
+
* Описание статуса загрузки
|
|
44
|
+
*/
|
|
45
|
+
statusLabel: string;
|
|
46
|
+
/**
|
|
47
|
+
* Процент прогресса
|
|
48
|
+
*/
|
|
49
|
+
progress: ProgressBarProps['progress'];
|
|
50
|
+
/**
|
|
51
|
+
* Отображаемый размер файла
|
|
52
|
+
*/
|
|
53
|
+
formattedSize: string;
|
|
54
|
+
/**
|
|
55
|
+
* Экшены для управления загрузкой
|
|
56
|
+
*/
|
|
57
|
+
actions: UploadActions;
|
|
58
|
+
/**
|
|
59
|
+
* Ссылка на файл
|
|
60
|
+
*/
|
|
61
|
+
link?: ToastUploadItemLink;
|
|
62
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const formatPercent = (value: number) => `${value}%`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './formatPercent';
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.containerWithCloseAllButton {
|
|
64
|
-
margin-bottom: calc(styles-theme-variables.$size-toaster-button-close-column + styles-theme-variables.$space-toaster-system-event-gap);
|
|
64
|
+
margin-bottom: calc(styles-theme-variables.$size-toaster-button-close-column + styles-theme-variables.$space-toaster-toast-system-event-gap);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
@media only screen and (max-width: 480px) {
|
package/src/components/index.ts
CHANGED
package/src/constants.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { ToasterType } from './types';
|
|
|
4
4
|
export const TOASTER_TYPE = {
|
|
5
5
|
SystemEvent: 'system-event',
|
|
6
6
|
UserAction: 'user-action',
|
|
7
|
+
Upload: 'upload',
|
|
7
8
|
} as const;
|
|
8
9
|
|
|
9
10
|
export const TOASTER_CONTAINER_DEFAULT_PROPS: Record<ToasterType, ToasterContainerProps> = {
|
|
@@ -19,11 +20,18 @@ export const TOASTER_CONTAINER_DEFAULT_PROPS: Record<ToasterType, ToasterContain
|
|
|
19
20
|
displayCloseAllButton: false,
|
|
20
21
|
type: TOASTER_TYPE.UserAction,
|
|
21
22
|
},
|
|
23
|
+
[TOASTER_TYPE.Upload]: {
|
|
24
|
+
limit: 5,
|
|
25
|
+
position: 'bottom-right',
|
|
26
|
+
displayCloseAllButton: true,
|
|
27
|
+
type: TOASTER_TYPE.SystemEvent,
|
|
28
|
+
},
|
|
22
29
|
};
|
|
23
30
|
|
|
24
|
-
export const AUTO_CLOSE_TIME = {
|
|
31
|
+
export const AUTO_CLOSE_TIME: Record<ToasterType, number | false> = {
|
|
25
32
|
[TOASTER_TYPE.SystemEvent]: 5000,
|
|
26
33
|
[TOASTER_TYPE.UserAction]: 2000,
|
|
34
|
+
[TOASTER_TYPE.Upload]: false,
|
|
27
35
|
};
|
|
28
36
|
|
|
29
37
|
export const TOASTER_ROOT_ID = 'toaster-root';
|
package/src/helpers.tsx
CHANGED
|
@@ -9,6 +9,8 @@ import {
|
|
|
9
9
|
ToasterContainerProps,
|
|
10
10
|
ToastSystemEvent,
|
|
11
11
|
ToastSystemEventProps,
|
|
12
|
+
ToastUpload,
|
|
13
|
+
ToastUploadProps,
|
|
12
14
|
ToastUserAction,
|
|
13
15
|
ToastUserActionProps,
|
|
14
16
|
} from './components';
|
|
@@ -28,6 +30,7 @@ import {
|
|
|
28
30
|
ToasterType,
|
|
29
31
|
ToastOptions,
|
|
30
32
|
UpdateToast,
|
|
33
|
+
UploadOptions,
|
|
31
34
|
UserActionOptions,
|
|
32
35
|
} from './types';
|
|
33
36
|
|
|
@@ -97,6 +100,8 @@ function getToastComponent<T extends keyof ToasterPropsMap>({
|
|
|
97
100
|
return <ToastUserAction {...(toasterProps as ToastUserActionProps)} />;
|
|
98
101
|
case TOASTER_TYPE.SystemEvent:
|
|
99
102
|
return <ToastSystemEvent {...(toasterProps as ToastSystemEventProps)} />;
|
|
103
|
+
case TOASTER_TYPE.Upload:
|
|
104
|
+
return <ToastUpload {...(toasterProps as ToastUploadProps)} />;
|
|
100
105
|
default:
|
|
101
106
|
return undefined;
|
|
102
107
|
}
|
|
@@ -150,6 +155,10 @@ export const updateToast: UpdateToast = (id, { type, toasterProps, toastOptions,
|
|
|
150
155
|
});
|
|
151
156
|
};
|
|
152
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Закрытие тостера
|
|
160
|
+
* @function
|
|
161
|
+
*/
|
|
153
162
|
export const dismissToast = (params?: Id) => toast.dismiss(params);
|
|
154
163
|
export const isToastActive = toast.isActive;
|
|
155
164
|
|
|
@@ -331,7 +340,36 @@ const systemEvent = {
|
|
|
331
340
|
},
|
|
332
341
|
};
|
|
333
342
|
|
|
343
|
+
const upload = {
|
|
344
|
+
startOrUpdate({ id, ...options }: UploadOptions) {
|
|
345
|
+
const toastId = id || TOASTER_TYPE.Upload;
|
|
346
|
+
|
|
347
|
+
if (toast.isActive(toastId)) {
|
|
348
|
+
return updateToast(toastId, {
|
|
349
|
+
type: TOASTER_TYPE.Upload,
|
|
350
|
+
toasterProps: { ...options },
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return openToast({
|
|
355
|
+
type: TOASTER_TYPE.Upload,
|
|
356
|
+
toasterProps: {
|
|
357
|
+
...options,
|
|
358
|
+
},
|
|
359
|
+
toastOptions: {
|
|
360
|
+
id: toastId,
|
|
361
|
+
onClose: options.onClose,
|
|
362
|
+
},
|
|
363
|
+
});
|
|
364
|
+
},
|
|
365
|
+
|
|
366
|
+
dismiss(id?: ToasterId) {
|
|
367
|
+
return toast.dismiss(id);
|
|
368
|
+
},
|
|
369
|
+
};
|
|
370
|
+
|
|
334
371
|
export const toaster: Toaster = {
|
|
335
372
|
userAction,
|
|
336
373
|
systemEvent,
|
|
374
|
+
upload,
|
|
337
375
|
};
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
export { toaster, openToast, updateToast, dismissToast } from './helpers';
|
|
2
|
-
export
|
|
3
|
-
export type
|
|
4
|
-
Toaster,
|
|
5
|
-
UpdateToast,
|
|
6
|
-
OpenToast,
|
|
7
|
-
UserActionOptions,
|
|
8
|
-
SystemEventOptions,
|
|
9
|
-
ToasterId,
|
|
10
|
-
ToastOptions,
|
|
11
|
-
} from './types';
|
|
2
|
+
export * from './components';
|
|
3
|
+
export type * from './types';
|
|
12
4
|
export { TOASTER_TYPE } from './constants';
|
package/src/testIds.ts
CHANGED
|
@@ -21,3 +21,20 @@ export const TOAST_USER_ACTION_TEST_IDS = {
|
|
|
21
21
|
loader: `${TOAST_USER_ACTION_TEST_ID}__loader`,
|
|
22
22
|
link: `${TOAST_USER_ACTION_TEST_ID}__link`,
|
|
23
23
|
};
|
|
24
|
+
|
|
25
|
+
const TOAST_UPLOAD_TEST_ID = 'toast-upload';
|
|
26
|
+
|
|
27
|
+
export const TOAST_UPLOAD_TEST_IDS = {
|
|
28
|
+
main: TOAST_UPLOAD_TEST_ID,
|
|
29
|
+
close: `${TOAST_UPLOAD_TEST_ID}__close`,
|
|
30
|
+
title: `${TOAST_UPLOAD_TEST_ID}__title`,
|
|
31
|
+
description: `${TOAST_UPLOAD_TEST_ID}__description`,
|
|
32
|
+
counter: `${TOAST_UPLOAD_TEST_ID}__counter`,
|
|
33
|
+
progress: `${TOAST_UPLOAD_TEST_ID}__progress`,
|
|
34
|
+
list: `${TOAST_UPLOAD_TEST_ID}__list`,
|
|
35
|
+
collapseButton: `${TOAST_UPLOAD_TEST_ID}__collapseButton`,
|
|
36
|
+
progressBar: `${TOAST_UPLOAD_TEST_ID}__progressBar`,
|
|
37
|
+
uploadItem: `${TOAST_UPLOAD_TEST_ID}__uploadItem`,
|
|
38
|
+
uploadItemLink: `${TOAST_UPLOAD_TEST_ID}__uploadItemLink`,
|
|
39
|
+
uploadItemCancel: `${TOAST_UPLOAD_TEST_ID}__uploadItemCancel`,
|
|
40
|
+
};
|
package/src/types.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Id, ToastOptions as RtToastOptions } from 'react-toastify';
|
|
|
2
2
|
|
|
3
3
|
import { ValueOf } from '@snack-uikit/utils';
|
|
4
4
|
|
|
5
|
-
import { ToasterContainerProps, ToastSystemEventProps, ToastUserActionProps } from './components';
|
|
5
|
+
import { ToasterContainerProps, ToastSystemEventProps, ToastUploadProps, ToastUserActionProps } from './components';
|
|
6
6
|
import { TOASTER_TYPE } from './constants';
|
|
7
7
|
|
|
8
8
|
export type ToasterId = Id;
|
|
@@ -19,6 +19,7 @@ export type ToasterType = ValueOf<typeof TOASTER_TYPE>;
|
|
|
19
19
|
export type ToasterPropsMap = {
|
|
20
20
|
[TOASTER_TYPE.UserAction]: ToastUserActionProps;
|
|
21
21
|
[TOASTER_TYPE.SystemEvent]: ToastSystemEventProps;
|
|
22
|
+
[TOASTER_TYPE.Upload]: ToastUploadProps & { loading?: boolean };
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
type OpenNotificationProps<T extends keyof ToasterPropsMap> = {
|
|
@@ -49,6 +50,7 @@ export type UpdateToast = <T extends keyof ToasterPropsMap>(
|
|
|
49
50
|
|
|
50
51
|
export type UserActionOptions = Omit<ToastUserActionProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
|
|
51
52
|
export type SystemEventOptions = Omit<ToastSystemEventProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
|
|
53
|
+
export type UploadOptions = ToastUploadProps & Pick<ToastOptions, 'id' | 'onClose'>;
|
|
52
54
|
|
|
53
55
|
export type Toaster = {
|
|
54
56
|
userAction: {
|
|
@@ -79,4 +81,8 @@ export type Toaster = {
|
|
|
79
81
|
};
|
|
80
82
|
dismiss(id?: ToasterId): void;
|
|
81
83
|
};
|
|
84
|
+
upload: {
|
|
85
|
+
startOrUpdate(options: UploadOptions): void;
|
|
86
|
+
dismiss(id?: ToasterId): void;
|
|
87
|
+
};
|
|
82
88
|
};
|