@snack-uikit/toaster 0.8.19-preview-27ae78ba.0 → 0.8.19

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +37 -74
  3. package/dist/cjs/components/ToastSystemEvent/styles.module.css +3 -2
  4. package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
  5. package/dist/cjs/components/index.d.ts +0 -1
  6. package/dist/cjs/components/index.js +1 -2
  7. package/dist/cjs/constants.d.ts +4 -2
  8. package/dist/cjs/constants.js +2 -10
  9. package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
  10. package/dist/cjs/helpers.d.ts +0 -4
  11. package/dist/cjs/helpers.js +1 -42
  12. package/dist/cjs/index.d.ts +2 -2
  13. package/dist/cjs/index.js +0 -20
  14. package/dist/cjs/testIds.d.ts +0 -14
  15. package/dist/cjs/testIds.js +1 -16
  16. package/dist/cjs/types.d.ts +1 -9
  17. package/dist/esm/components/ToastSystemEvent/styles.module.css +3 -2
  18. package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
  19. package/dist/esm/components/index.d.ts +0 -1
  20. package/dist/esm/components/index.js +0 -1
  21. package/dist/esm/constants.d.ts +4 -2
  22. package/dist/esm/constants.js +0 -8
  23. package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
  24. package/dist/esm/helpers.d.ts +0 -4
  25. package/dist/esm/helpers.js +1 -42
  26. package/dist/esm/index.d.ts +2 -2
  27. package/dist/esm/index.js +0 -1
  28. package/dist/esm/testIds.d.ts +0 -14
  29. package/dist/esm/testIds.js +0 -15
  30. package/dist/esm/types.d.ts +1 -9
  31. package/package.json +6 -10
  32. package/src/components/ToastSystemEvent/styles.module.scss +2 -2
  33. package/src/components/ToasterContainer/styles.module.scss +1 -1
  34. package/src/components/index.ts +0 -1
  35. package/src/constants.ts +1 -9
  36. package/src/helpers.tsx +0 -38
  37. package/src/index.ts +10 -2
  38. package/src/testIds.ts +0 -17
  39. package/src/types.ts +1 -7
  40. package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +0 -59
  41. package/dist/cjs/components/ToastUpload/ToastUpload.js +0 -132
  42. package/dist/cjs/components/ToastUpload/constants.d.ts +0 -16
  43. package/dist/cjs/components/ToastUpload/constants.js +0 -26
  44. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +0 -3
  45. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +0 -32
  46. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +0 -1
  47. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.js +0 -25
  48. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +0 -32
  49. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +0 -7
  50. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +0 -28
  51. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +0 -1
  52. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +0 -25
  53. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +0 -33
  54. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +0 -5
  55. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.js +0 -90
  56. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.d.ts +0 -1
  57. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.js +0 -25
  58. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/styles.module.css +0 -87
  59. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +0 -7
  60. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +0 -43
  61. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +0 -1
  62. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.js +0 -25
  63. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +0 -3
  64. package/dist/cjs/components/ToastUpload/index.d.ts +0 -1
  65. package/dist/cjs/components/ToastUpload/index.js +0 -25
  66. package/dist/cjs/components/ToastUpload/styles.module.css +0 -111
  67. package/dist/cjs/components/ToastUpload/types.d.ts +0 -55
  68. package/dist/cjs/components/ToastUpload/types.js +0 -5
  69. package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +0 -1
  70. package/dist/cjs/components/ToastUpload/utils/formatPercent.js +0 -8
  71. package/dist/cjs/components/ToastUpload/utils/index.d.ts +0 -1
  72. package/dist/cjs/components/ToastUpload/utils/index.js +0 -25
  73. package/dist/esm/components/ToastUpload/ToastUpload.d.ts +0 -59
  74. package/dist/esm/components/ToastUpload/ToastUpload.js +0 -45
  75. package/dist/esm/components/ToastUpload/constants.d.ts +0 -16
  76. package/dist/esm/components/ToastUpload/constants.js +0 -20
  77. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +0 -3
  78. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +0 -18
  79. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +0 -1
  80. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.js +0 -1
  81. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +0 -32
  82. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +0 -7
  83. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +0 -5
  84. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +0 -1
  85. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +0 -1
  86. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +0 -33
  87. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +0 -5
  88. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.js +0 -26
  89. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.d.ts +0 -1
  90. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.js +0 -1
  91. package/dist/esm/components/ToastUpload/helperComponents/FileItem/styles.module.css +0 -87
  92. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +0 -7
  93. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +0 -16
  94. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +0 -1
  95. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.js +0 -1
  96. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +0 -3
  97. package/dist/esm/components/ToastUpload/index.d.ts +0 -1
  98. package/dist/esm/components/ToastUpload/index.js +0 -1
  99. package/dist/esm/components/ToastUpload/styles.module.css +0 -111
  100. package/dist/esm/components/ToastUpload/types.d.ts +0 -55
  101. package/dist/esm/components/ToastUpload/types.js +0 -1
  102. package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +0 -1
  103. package/dist/esm/components/ToastUpload/utils/formatPercent.js +0 -1
  104. package/dist/esm/components/ToastUpload/utils/index.d.ts +0 -1
  105. package/dist/esm/components/ToastUpload/utils/index.js +0 -1
  106. package/src/components/ToastUpload/ToastUpload.tsx +0 -182
  107. package/src/components/ToastUpload/constants.ts +0 -26
  108. package/src/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.tsx +0 -10
  109. package/src/components/ToastUpload/helperComponents/ButtonIcon/index.ts +0 -1
  110. package/src/components/ToastUpload/helperComponents/ButtonIcon/styles.module.scss +0 -43
  111. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.tsx +0 -23
  112. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/index.ts +0 -1
  113. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.scss +0 -38
  114. package/src/components/ToastUpload/helperComponents/FileItem/FileItem.tsx +0 -87
  115. package/src/components/ToastUpload/helperComponents/FileItem/index.ts +0 -1
  116. package/src/components/ToastUpload/helperComponents/FileItem/styles.module.scss +0 -91
  117. package/src/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.tsx +0 -39
  118. package/src/components/ToastUpload/helperComponents/LoadingStatus/index.ts +0 -1
  119. package/src/components/ToastUpload/helperComponents/LoadingStatus/styles.module.scss +0 -5
  120. package/src/components/ToastUpload/index.ts +0 -1
  121. package/src/components/ToastUpload/styles.module.scss +0 -121
  122. package/src/components/ToastUpload/types.ts +0 -62
  123. package/src/components/ToastUpload/utils/formatPercent.ts +0 -1
  124. package/src/components/ToastUpload/utils/index.ts +0 -1
@@ -1,20 +1,9 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
1
  import { jsx as _jsx } from "react/jsx-runtime";
13
2
  // eslint-disable-next-line react/no-deprecated
14
3
  import { render } from 'react-dom';
15
4
  import { toast } from 'react-toastify';
16
5
  import { isBrowser } from '@snack-uikit/utils';
17
- import { ToasterContainer, ToastSystemEvent, ToastUpload, ToastUserAction, } from './components';
6
+ import { ToasterContainer, ToastSystemEvent, ToastUserAction, } from './components';
18
7
  import { AUTO_CLOSE_TIME, TOASTER_CONTAINER_DEFAULT_PROPS, TOASTER_CONTAINER_PREFIX, TOASTER_ROOT_ID, TOASTER_TYPE, } from './constants';
19
8
  function getToasterContainer({ type, toasterParent, containerProps, }) {
20
9
  const containerId = (containerProps === null || containerProps === void 0 ? void 0 : containerProps.containerId) || `${TOASTER_CONTAINER_PREFIX}${type}`;
@@ -48,8 +37,6 @@ function getToastComponent({ type, toasterProps, }) {
48
37
  return _jsx(ToastUserAction, Object.assign({}, toasterProps));
49
38
  case TOASTER_TYPE.SystemEvent:
50
39
  return _jsx(ToastSystemEvent, Object.assign({}, toasterProps));
51
- case TOASTER_TYPE.Upload:
52
- return _jsx(ToastUpload, Object.assign({}, toasterProps));
53
40
  default:
54
41
  return undefined;
55
42
  }
@@ -86,10 +73,6 @@ export const updateToast = (id, { type, toasterProps, toastOptions, containerId
86
73
  });
87
74
  return toast.update(id, Object.assign(Object.assign({}, options), { render: toastComponent }));
88
75
  };
89
- /**
90
- * Закрытие тостера
91
- * @function
92
- */
93
76
  export const dismissToast = (params) => toast.dismiss(params);
94
77
  export const isToastActive = toast.isActive;
95
78
  const userAction = {
@@ -250,31 +233,7 @@ const systemEvent = {
250
233
  return toast.dismiss(id);
251
234
  },
252
235
  };
253
- const upload = {
254
- startOrUpdate(_a) {
255
- var { id } = _a, options = __rest(_a, ["id"]);
256
- const toastId = id || TOASTER_TYPE.Upload;
257
- if (toast.isActive(toastId)) {
258
- return updateToast(toastId, {
259
- type: TOASTER_TYPE.Upload,
260
- toasterProps: Object.assign({}, options),
261
- });
262
- }
263
- return openToast({
264
- type: TOASTER_TYPE.Upload,
265
- toasterProps: Object.assign({}, options),
266
- toastOptions: {
267
- id: toastId,
268
- onClose: options.onClose,
269
- },
270
- });
271
- },
272
- dismiss(id) {
273
- return toast.dismiss(id);
274
- },
275
- };
276
236
  export const toaster = {
277
237
  userAction,
278
238
  systemEvent,
279
- upload,
280
239
  };
@@ -1,4 +1,4 @@
1
1
  export { toaster, openToast, updateToast, dismissToast } from './helpers';
2
- export * from './components';
3
- export type * from './types';
2
+ export type { ToastSystemEventProps, ToastUserActionProps, ToasterContainerProps } from './components';
3
+ export type { Toaster, UpdateToast, OpenToast, UserActionOptions, SystemEventOptions, ToasterId, ToastOptions, } from './types';
4
4
  export { TOASTER_TYPE } from './constants';
package/dist/esm/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export { toaster, openToast, updateToast, dismissToast } from './helpers';
2
- export * from './components';
3
2
  export { TOASTER_TYPE } from './constants';
@@ -16,17 +16,3 @@ export declare const TOAST_USER_ACTION_TEST_IDS: {
16
16
  loader: string;
17
17
  link: string;
18
18
  };
19
- export declare const TOAST_UPLOAD_TEST_IDS: {
20
- main: string;
21
- close: string;
22
- title: string;
23
- description: string;
24
- counter: string;
25
- progress: string;
26
- list: string;
27
- collapseButton: string;
28
- progressBar: string;
29
- uploadItem: string;
30
- uploadItemLink: string;
31
- uploadItemCancel: string;
32
- };
@@ -18,18 +18,3 @@ export const TOAST_USER_ACTION_TEST_IDS = {
18
18
  loader: `${TOAST_USER_ACTION_TEST_ID}__loader`,
19
19
  link: `${TOAST_USER_ACTION_TEST_ID}__link`,
20
20
  };
21
- const TOAST_UPLOAD_TEST_ID = 'toast-upload';
22
- export const TOAST_UPLOAD_TEST_IDS = {
23
- main: TOAST_UPLOAD_TEST_ID,
24
- close: `${TOAST_UPLOAD_TEST_ID}__close`,
25
- title: `${TOAST_UPLOAD_TEST_ID}__title`,
26
- description: `${TOAST_UPLOAD_TEST_ID}__description`,
27
- counter: `${TOAST_UPLOAD_TEST_ID}__counter`,
28
- progress: `${TOAST_UPLOAD_TEST_ID}__progress`,
29
- list: `${TOAST_UPLOAD_TEST_ID}__list`,
30
- collapseButton: `${TOAST_UPLOAD_TEST_ID}__collapseButton`,
31
- progressBar: `${TOAST_UPLOAD_TEST_ID}__progressBar`,
32
- uploadItem: `${TOAST_UPLOAD_TEST_ID}__uploadItem`,
33
- uploadItemLink: `${TOAST_UPLOAD_TEST_ID}__uploadItemLink`,
34
- uploadItemCancel: `${TOAST_UPLOAD_TEST_ID}__uploadItemCancel`,
35
- };
@@ -1,6 +1,6 @@
1
1
  import { Id, ToastOptions as RtToastOptions } from 'react-toastify';
2
2
  import { ValueOf } from '@snack-uikit/utils';
3
- import { ToasterContainerProps, ToastSystemEventProps, ToastUploadProps, ToastUserActionProps } from './components';
3
+ import { ToasterContainerProps, ToastSystemEventProps, ToastUserActionProps } from './components';
4
4
  import { TOASTER_TYPE } from './constants';
5
5
  export type ToasterId = Id;
6
6
  export type PromisedId = Promise<ToasterId>;
@@ -13,9 +13,6 @@ export type ToasterType = ValueOf<typeof TOASTER_TYPE>;
13
13
  export type ToasterPropsMap = {
14
14
  [TOASTER_TYPE.UserAction]: ToastUserActionProps;
15
15
  [TOASTER_TYPE.SystemEvent]: ToastSystemEventProps;
16
- [TOASTER_TYPE.Upload]: ToastUploadProps & {
17
- loading?: boolean;
18
- };
19
16
  };
20
17
  type OpenNotificationProps<T extends keyof ToasterPropsMap> = {
21
18
  type: T;
@@ -36,7 +33,6 @@ export type UpdateToast = <T extends keyof ToasterPropsMap>(id: string | number,
36
33
  }) => void;
37
34
  export type UserActionOptions = Omit<ToastUserActionProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
38
35
  export type SystemEventOptions = Omit<ToastSystemEventProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
39
- export type UploadOptions = ToastUploadProps & Pick<ToastOptions, 'id' | 'onClose'>;
40
36
  export type Toaster = {
41
37
  userAction: {
42
38
  success(options: UserActionOptions): PromisedId;
@@ -66,9 +62,5 @@ export type Toaster = {
66
62
  };
67
63
  dismiss(id?: ToasterId): void;
68
64
  };
69
- upload: {
70
- startOrUpdate(options: UploadOptions): void;
71
- dismiss(id?: ToasterId): void;
72
- };
73
65
  };
74
66
  export {};
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Toaster",
7
- "version": "0.8.19-preview-27ae78ba.0",
7
+ "version": "0.8.19",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
@@ -36,17 +36,13 @@
36
36
  "license": "Apache-2.0",
37
37
  "scripts": {},
38
38
  "dependencies": {
39
- "@snack-uikit/icons": "0.25.2-preview-27ae78ba.0",
40
- "@snack-uikit/link": "0.16.1-preview-27ae78ba.0",
39
+ "@snack-uikit/icons": "0.25.2",
40
+ "@snack-uikit/link": "0.16.1",
41
41
  "@snack-uikit/loaders": "0.9.2",
42
- "@snack-uikit/locale": "0.12.3-preview-27ae78ba.0",
43
- "@snack-uikit/progress-bar": "0.1.4",
44
- "@snack-uikit/scroll": "0.9.4",
45
- "@snack-uikit/truncate-string": "0.6.14-preview-27ae78ba.0",
42
+ "@snack-uikit/truncate-string": "0.6.14",
46
43
  "@snack-uikit/utils": "3.8.0",
47
44
  "classnames": "2.5.1",
48
- "react-toastify": "10.0.5",
49
- "uncontrollable": "9.0.0"
45
+ "react-toastify": "10.0.5"
50
46
  },
51
- "gitHead": "1b0c13441cba0634880c2f35d4c41871f6b6299f"
47
+ "gitHead": "9b1272d441a5e9db6004a358045579bfecd0b9c6"
52
48
  }
@@ -33,7 +33,7 @@
33
33
 
34
34
  .buttonClose {
35
35
  @include styles-theme-variables.composite-var(
36
- styles-tokens-toaster-toasterSystemEvent.$toaster-system-event-toast-button-button-neutral
36
+ styles-tokens-toaster-toasterSystemEvent.$toaster-system-event-toast-button-button-close
37
37
  );
38
38
 
39
39
  cursor: pointer;
@@ -159,7 +159,7 @@
159
159
  box-sizing: border-box;
160
160
  width: calc(
161
161
  styles-tokens-toaster-toasterSystemEvent.$size-toaster-toast-system-event-container -
162
- (2 * styles-tokens-toaster-toasterSystemEvent.$space-toaster-toast-system-event-padding)
162
+ (2 * styles-tokens-toaster-toasterSystemEvent.$space-toaster-system-event-padding)
163
163
  );
164
164
  max-width: 100%;
165
165
 
@@ -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-toast-system-event-gap);
64
+ margin-bottom: calc(styles-theme-variables.$size-toaster-button-close-column + styles-theme-variables.$space-toaster-system-event-gap);
65
65
  }
66
66
 
67
67
  @media only screen and (max-width: 480px) {
@@ -1,4 +1,3 @@
1
1
  export * from './ToastSystemEvent';
2
2
  export * from './ToastUserAction';
3
3
  export * from './ToasterContainer';
4
- export * from './ToastUpload';
package/src/constants.ts CHANGED
@@ -4,7 +4,6 @@ import { ToasterType } from './types';
4
4
  export const TOASTER_TYPE = {
5
5
  SystemEvent: 'system-event',
6
6
  UserAction: 'user-action',
7
- Upload: 'upload',
8
7
  } as const;
9
8
 
10
9
  export const TOASTER_CONTAINER_DEFAULT_PROPS: Record<ToasterType, ToasterContainerProps> = {
@@ -20,18 +19,11 @@ export const TOASTER_CONTAINER_DEFAULT_PROPS: Record<ToasterType, ToasterContain
20
19
  displayCloseAllButton: false,
21
20
  type: TOASTER_TYPE.UserAction,
22
21
  },
23
- [TOASTER_TYPE.Upload]: {
24
- limit: 5,
25
- position: 'bottom-right',
26
- displayCloseAllButton: true,
27
- type: TOASTER_TYPE.SystemEvent,
28
- },
29
22
  };
30
23
 
31
- export const AUTO_CLOSE_TIME: Record<ToasterType, number | false> = {
24
+ export const AUTO_CLOSE_TIME = {
32
25
  [TOASTER_TYPE.SystemEvent]: 5000,
33
26
  [TOASTER_TYPE.UserAction]: 2000,
34
- [TOASTER_TYPE.Upload]: false,
35
27
  };
36
28
 
37
29
  export const TOASTER_ROOT_ID = 'toaster-root';
package/src/helpers.tsx CHANGED
@@ -9,8 +9,6 @@ import {
9
9
  ToasterContainerProps,
10
10
  ToastSystemEvent,
11
11
  ToastSystemEventProps,
12
- ToastUpload,
13
- ToastUploadProps,
14
12
  ToastUserAction,
15
13
  ToastUserActionProps,
16
14
  } from './components';
@@ -30,7 +28,6 @@ import {
30
28
  ToasterType,
31
29
  ToastOptions,
32
30
  UpdateToast,
33
- UploadOptions,
34
31
  UserActionOptions,
35
32
  } from './types';
36
33
 
@@ -100,8 +97,6 @@ function getToastComponent<T extends keyof ToasterPropsMap>({
100
97
  return <ToastUserAction {...(toasterProps as ToastUserActionProps)} />;
101
98
  case TOASTER_TYPE.SystemEvent:
102
99
  return <ToastSystemEvent {...(toasterProps as ToastSystemEventProps)} />;
103
- case TOASTER_TYPE.Upload:
104
- return <ToastUpload {...(toasterProps as ToastUploadProps)} />;
105
100
  default:
106
101
  return undefined;
107
102
  }
@@ -155,10 +150,6 @@ export const updateToast: UpdateToast = (id, { type, toasterProps, toastOptions,
155
150
  });
156
151
  };
157
152
 
158
- /**
159
- * Закрытие тостера
160
- * @function
161
- */
162
153
  export const dismissToast = (params?: Id) => toast.dismiss(params);
163
154
  export const isToastActive = toast.isActive;
164
155
 
@@ -340,36 +331,7 @@ const systemEvent = {
340
331
  },
341
332
  };
342
333
 
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
-
371
334
  export const toaster: Toaster = {
372
335
  userAction,
373
336
  systemEvent,
374
- upload,
375
337
  };
package/src/index.ts CHANGED
@@ -1,4 +1,12 @@
1
1
  export { toaster, openToast, updateToast, dismissToast } from './helpers';
2
- export * from './components';
3
- export type * from './types';
2
+ export type { ToastSystemEventProps, ToastUserActionProps, ToasterContainerProps } from './components';
3
+ export type {
4
+ Toaster,
5
+ UpdateToast,
6
+ OpenToast,
7
+ UserActionOptions,
8
+ SystemEventOptions,
9
+ ToasterId,
10
+ ToastOptions,
11
+ } from './types';
4
12
  export { TOASTER_TYPE } from './constants';
package/src/testIds.ts CHANGED
@@ -21,20 +21,3 @@ 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, ToastUploadProps, ToastUserActionProps } from './components';
5
+ import { ToasterContainerProps, ToastSystemEventProps, ToastUserActionProps } from './components';
6
6
  import { TOASTER_TYPE } from './constants';
7
7
 
8
8
  export type ToasterId = Id;
@@ -19,7 +19,6 @@ 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 };
23
22
  };
24
23
 
25
24
  type OpenNotificationProps<T extends keyof ToasterPropsMap> = {
@@ -50,7 +49,6 @@ export type UpdateToast = <T extends keyof ToasterPropsMap>(
50
49
 
51
50
  export type UserActionOptions = Omit<ToastUserActionProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
52
51
  export type SystemEventOptions = Omit<ToastSystemEventProps, 'appearance'> & Pick<ToastOptions, 'id' | 'onClose'>;
53
- export type UploadOptions = ToastUploadProps & Pick<ToastOptions, 'id' | 'onClose'>;
54
52
 
55
53
  export type Toaster = {
56
54
  userAction: {
@@ -81,8 +79,4 @@ export type Toaster = {
81
79
  };
82
80
  dismiss(id?: ToasterId): void;
83
81
  };
84
- upload: {
85
- startOrUpdate(options: UploadOptions): void;
86
- dismiss(id?: ToasterId): void;
87
- };
88
82
  };
@@ -1,59 +0,0 @@
1
- import { MouseEvent } from 'react';
2
- import { ToastContentProps as RtToastContentProps } from 'react-toastify';
3
- import { WithSupportProps } from '@snack-uikit/utils';
4
- import { ButtonTextNeutralProps } from './helperComponents/ButtonTextNeutral';
5
- import { ToastUploadStatus, UploadActions, UploadItem } from './types';
6
- export type ToastUploadProps = Partial<RtToastContentProps> & WithSupportProps<{
7
- /**
8
- * Общий статус загрузки
9
- */
10
- status: ToastUploadStatus;
11
- /**
12
- * Заголовок тостера
13
- */
14
- title?: string;
15
- /**
16
- * Описание статуса загрузки
17
- */
18
- description: string;
19
- /**
20
- * Общий прогресс загрузки
21
- */
22
- progress: {
23
- current: number;
24
- total: number;
25
- };
26
- /**
27
- * Закрыть тостер
28
- */
29
- onCloseClick?(e: MouseEvent<HTMLButtonElement>, close?: () => void): void;
30
- /**
31
- * Показывать кнопку закрытия тостера
32
- */
33
- closable?: boolean;
34
- /**
35
- * CSS-класс контейнера
36
- */
37
- className?: string;
38
- /**
39
- * Загружаемые элементы
40
- */
41
- files: UploadItem[];
42
- /**
43
- * Тостер свернут/развернут
44
- */
45
- collapsed?: boolean;
46
- /**
47
- * Развернуть/свернуть тостер
48
- */
49
- onCollapsed?: (collapsed: boolean) => void;
50
- /**
51
- * Экшены для управления загрузкой
52
- */
53
- generalActions: Omit<UploadActions, 'onCancel'>;
54
- /**
55
- * Отмена всей загрузки
56
- */
57
- cancelButton?: ButtonTextNeutralProps;
58
- }>;
59
- export declare function ToastUpload({ status, title, description, closeToast, onCloseClick, closable, className, files, collapsed, onCollapsed, generalActions, cancelButton, progress, ...rest }: ToastUploadProps): import("react/jsx-runtime").JSX.Element;
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- var __rest = void 0 && (void 0).__rest || function (s, e) {
4
- var t = {};
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
- }
9
- return t;
10
- };
11
- var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
12
- return mod && mod.__esModule ? mod : {
13
- "default": mod
14
- };
15
- };
16
- Object.defineProperty(exports, "__esModule", {
17
- value: true
18
- });
19
- exports.ToastUpload = ToastUpload;
20
- const jsx_runtime_1 = require("react/jsx-runtime");
21
- const classnames_1 = __importDefault(require("classnames"));
22
- const uncontrollable_1 = require("uncontrollable");
23
- const icons_1 = require("@snack-uikit/icons");
24
- const locale_1 = require("@snack-uikit/locale");
25
- const progress_bar_1 = require("@snack-uikit/progress-bar");
26
- const scroll_1 = require("@snack-uikit/scroll");
27
- const truncate_string_1 = require("@snack-uikit/truncate-string");
28
- const utils_1 = require("@snack-uikit/utils");
29
- const testIds_1 = require("../../testIds");
30
- const constants_1 = require("./constants");
31
- const ButtonIcon_1 = require("./helperComponents/ButtonIcon");
32
- const ButtonTextNeutral_1 = require("./helperComponents/ButtonTextNeutral");
33
- const FileItem_1 = require("./helperComponents/FileItem");
34
- const LoadingStatus_1 = require("./helperComponents/LoadingStatus");
35
- const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
36
- const utils_2 = require("./utils");
37
- function ToastUpload(_a) {
38
- var {
39
- status,
40
- title,
41
- description,
42
- closeToast,
43
- onCloseClick,
44
- closable,
45
- className,
46
- files,
47
- collapsed,
48
- onCollapsed,
49
- generalActions,
50
- cancelButton,
51
- progress
52
- } = _a,
53
- rest = __rest(_a, ["status", "title", "description", "closeToast", "onCloseClick", "closable", "className", "files", "collapsed", "onCollapsed", "generalActions", "cancelButton", "progress"]);
54
- const [isCollapsed, setIsCollapsed] = (0, uncontrollable_1.useUncontrolledProp)(collapsed, false, onCollapsed);
55
- const {
56
- t
57
- } = (0, locale_1.useLocale)('ToastUpload');
58
- const showingTitle = title || t(`title.${status}`);
59
- const handleCloseClick = e => {
60
- e.stopPropagation();
61
- onCloseClick ? onCloseClick(e, closeToast) : closeToast === null || closeToast === void 0 ? void 0 : closeToast();
62
- };
63
- const handleCollapseClick = e => {
64
- e.stopPropagation();
65
- setIsCollapsed(!isCollapsed);
66
- };
67
- const progressPercent = Math.round(progress.current / progress.total * 100);
68
- const isErrorUploaded = status === 'errorUploaded';
69
- return (0, jsx_runtime_1.jsxs)("div", Object.assign({
70
- className: (0, classnames_1.default)(styles_module_scss_1.default.container, className)
71
- }, (0, utils_1.extractSupportProps)(rest), {
72
- "data-collapsed": isCollapsed || undefined,
73
- children: [(0, jsx_runtime_1.jsxs)("div", {
74
- className: styles_module_scss_1.default.titleLine,
75
- children: [(0, jsx_runtime_1.jsxs)("div", {
76
- className: styles_module_scss_1.default.titleLineBody,
77
- children: [(0, jsx_runtime_1.jsx)("div", {
78
- className: styles_module_scss_1.default.title,
79
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.title,
80
- children: showingTitle
81
- }), cancelButton && (0, jsx_runtime_1.jsx)(ButtonTextNeutral_1.ButtonTextNeutral, Object.assign({}, cancelButton)), (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
82
- onClick: handleCollapseClick,
83
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.collapseButton,
84
- children: !isCollapsed ? (0, jsx_runtime_1.jsx)(icons_1.ChevronUpSVG, {}) : (0, jsx_runtime_1.jsx)(icons_1.ChevronDownSVG, {})
85
- }), closable && (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
86
- className: styles_module_scss_1.default.buttonAction,
87
- onClick: handleCloseClick,
88
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.close,
89
- children: (0, jsx_runtime_1.jsx)(icons_1.CrossSVG, {})
90
- })]
91
- }), (0, jsx_runtime_1.jsxs)("div", {
92
- className: styles_module_scss_1.default.generalProgress,
93
- children: [(0, jsx_runtime_1.jsxs)("div", {
94
- className: styles_module_scss_1.default.statusLine,
95
- children: [(0, jsx_runtime_1.jsxs)("div", {
96
- className: styles_module_scss_1.default.statusWrap,
97
- children: [(0, jsx_runtime_1.jsx)(LoadingStatus_1.LoadingStatus, {
98
- status: status,
99
- actions: generalActions
100
- }), (0, jsx_runtime_1.jsx)(truncate_string_1.TruncateString, {
101
- className: styles_module_scss_1.default.description,
102
- "data-status": status,
103
- text: description,
104
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.description
105
- })]
106
- }), (0, jsx_runtime_1.jsx)("span", {
107
- className: styles_module_scss_1.default.totalCounter,
108
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.counter,
109
- children: `${progress.current}/${progress.total}`
110
- }), (0, jsx_runtime_1.jsx)("span", {
111
- className: styles_module_scss_1.default.totalPercentage,
112
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.progress,
113
- children: (0, utils_2.formatPercent)(isErrorUploaded ? 0 : progressPercent)
114
- })]
115
- }), isCollapsed && (0, jsx_runtime_1.jsx)(progress_bar_1.ProgressBar, {
116
- progress: isErrorUploaded ? 100 : progressPercent,
117
- size: 'xs',
118
- appearance: constants_1.progressBarAppearanceByStatus[status],
119
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.progressBar
120
- })]
121
- })]
122
- }), (0, jsx_runtime_1.jsx)(scroll_1.Scroll, {
123
- className: styles_module_scss_1.default.list,
124
- size: 's',
125
- "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.list,
126
- barHideStrategy: 'never',
127
- children: files.map(item => (0, jsx_runtime_1.jsx)(FileItem_1.FileItem, {
128
- item: item
129
- }, item.id || item.title))
130
- })]
131
- }));
132
- }
@@ -1,16 +0,0 @@
1
- import { ProgressBarProps } from '@snack-uikit/progress-bar';
2
- import { ToastUploadStatus } from './types';
3
- export declare const TOAST_UPLOAD_STATUS: {
4
- readonly Loading: "loading";
5
- readonly Pause: "pause";
6
- readonly Error: "error";
7
- readonly Uploaded: "uploaded";
8
- readonly ErrorUploaded: "errorUploaded";
9
- };
10
- export declare const TOAST_UPLOAD_ITEM_STATUS: {
11
- readonly Loading: "loading";
12
- readonly Pause: "pause";
13
- readonly Error: "error";
14
- readonly Uploaded: "uploaded";
15
- };
16
- export declare const progressBarAppearanceByStatus: Record<ToastUploadStatus, ProgressBarProps['appearance']>;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.progressBarAppearanceByStatus = exports.TOAST_UPLOAD_ITEM_STATUS = exports.TOAST_UPLOAD_STATUS = void 0;
7
- exports.TOAST_UPLOAD_STATUS = {
8
- Loading: 'loading',
9
- Pause: 'pause',
10
- Error: 'error',
11
- Uploaded: 'uploaded',
12
- ErrorUploaded: 'errorUploaded'
13
- };
14
- exports.TOAST_UPLOAD_ITEM_STATUS = {
15
- Loading: 'loading',
16
- Pause: 'pause',
17
- Error: 'error',
18
- Uploaded: 'uploaded'
19
- };
20
- exports.progressBarAppearanceByStatus = {
21
- pause: 'neutral',
22
- loading: 'green',
23
- uploaded: 'green',
24
- errorUploaded: 'red',
25
- error: 'red'
26
- };
@@ -1,3 +0,0 @@
1
- import { ButtonHTMLAttributes } from 'react';
2
- export type ButtonIconProps = ButtonHTMLAttributes<HTMLButtonElement>;
3
- export declare function ButtonIcon({ className, ...props }: ButtonIconProps): import("react/jsx-runtime").JSX.Element;