@snack-uikit/toaster 0.8.16 → 0.8.17-preview-bc9ca5dd.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.
Files changed (124) hide show
  1. package/README.md +9 -3
  2. package/dist/cjs/components/ToastSystemEvent/styles.module.css +2 -3
  3. package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +60 -0
  4. package/dist/cjs/components/ToastUpload/ToastUpload.js +122 -0
  5. package/dist/cjs/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  6. package/dist/cjs/components/ToastUpload/ToastUploadToaster.js +16 -0
  7. package/dist/cjs/components/ToastUpload/constants.d.ts +16 -0
  8. package/dist/cjs/components/ToastUpload/constants.js +26 -0
  9. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  10. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +32 -0
  11. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  12. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.js +25 -0
  13. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +30 -0
  14. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  15. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.js +85 -0
  16. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  17. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.js +25 -0
  18. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  19. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  20. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +42 -0
  21. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  22. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.js +25 -0
  23. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  24. package/dist/cjs/components/ToastUpload/index.d.ts +1 -0
  25. package/dist/cjs/components/ToastUpload/index.js +25 -0
  26. package/dist/cjs/components/ToastUpload/styles.module.css +110 -0
  27. package/dist/cjs/components/ToastUpload/types.d.ts +59 -0
  28. package/dist/cjs/components/ToastUpload/types.js +5 -0
  29. package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  30. package/dist/cjs/components/ToastUpload/utils/formatPercent.js +8 -0
  31. package/dist/cjs/components/ToastUpload/utils/index.d.ts +1 -0
  32. package/dist/cjs/components/ToastUpload/utils/index.js +25 -0
  33. package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
  34. package/dist/cjs/components/index.d.ts +1 -0
  35. package/dist/cjs/components/index.js +2 -1
  36. package/dist/cjs/constants.d.ts +10 -5
  37. package/dist/cjs/constants.js +77 -4
  38. package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
  39. package/dist/cjs/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  40. package/dist/cjs/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +28 -0
  41. package/dist/cjs/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  42. package/dist/cjs/helperComponents/ButtonTextNeutral/index.js +25 -0
  43. package/dist/cjs/helperComponents/ButtonTextNeutral/styles.module.css +32 -0
  44. package/dist/cjs/helpers.js +43 -1
  45. package/dist/cjs/index.d.ts +2 -2
  46. package/dist/cjs/testIds.d.ts +14 -0
  47. package/dist/cjs/testIds.js +16 -1
  48. package/dist/cjs/types.d.ts +9 -1
  49. package/dist/esm/components/ToastSystemEvent/styles.module.css +2 -3
  50. package/dist/esm/components/ToastUpload/ToastUpload.d.ts +60 -0
  51. package/dist/esm/components/ToastUpload/ToastUpload.js +36 -0
  52. package/dist/esm/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  53. package/dist/esm/components/ToastUpload/ToastUploadToaster.js +7 -0
  54. package/dist/esm/components/ToastUpload/constants.d.ts +16 -0
  55. package/dist/esm/components/ToastUpload/constants.js +20 -0
  56. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  57. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +18 -0
  58. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  59. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.js +1 -0
  60. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +30 -0
  61. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  62. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.js +23 -0
  63. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  64. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.js +1 -0
  65. package/dist/esm/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  66. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  67. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +16 -0
  68. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  69. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.js +1 -0
  70. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  71. package/dist/esm/components/ToastUpload/index.d.ts +1 -0
  72. package/dist/esm/components/ToastUpload/index.js +1 -0
  73. package/dist/esm/components/ToastUpload/styles.module.css +110 -0
  74. package/dist/esm/components/ToastUpload/types.d.ts +59 -0
  75. package/dist/esm/components/ToastUpload/types.js +1 -0
  76. package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  77. package/dist/esm/components/ToastUpload/utils/formatPercent.js +1 -0
  78. package/dist/esm/components/ToastUpload/utils/index.d.ts +1 -0
  79. package/dist/esm/components/ToastUpload/utils/index.js +1 -0
  80. package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
  81. package/dist/esm/components/index.d.ts +1 -0
  82. package/dist/esm/components/index.js +1 -0
  83. package/dist/esm/constants.d.ts +10 -5
  84. package/dist/esm/constants.js +76 -0
  85. package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
  86. package/dist/esm/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  87. package/dist/esm/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +5 -0
  88. package/dist/esm/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  89. package/dist/esm/helperComponents/ButtonTextNeutral/index.js +1 -0
  90. package/dist/esm/helperComponents/ButtonTextNeutral/styles.module.css +32 -0
  91. package/dist/esm/helpers.js +38 -0
  92. package/dist/esm/index.d.ts +2 -2
  93. package/dist/esm/testIds.d.ts +14 -0
  94. package/dist/esm/testIds.js +15 -0
  95. package/dist/esm/types.d.ts +9 -1
  96. package/package.json +6 -5
  97. package/src/components/ToastSystemEvent/styles.module.scss +2 -2
  98. package/src/components/ToastUpload/ToastUpload.tsx +169 -0
  99. package/src/components/ToastUpload/ToastUploadToaster.tsx +11 -0
  100. package/src/components/ToastUpload/constants.ts +26 -0
  101. package/src/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.tsx +10 -0
  102. package/src/components/ToastUpload/helperComponents/ButtonIcon/index.ts +1 -0
  103. package/src/components/ToastUpload/helperComponents/ButtonIcon/styles.module.scss +45 -0
  104. package/src/components/ToastUpload/helperComponents/FileItem/FileItem.tsx +76 -0
  105. package/src/components/ToastUpload/helperComponents/FileItem/index.ts +1 -0
  106. package/src/components/ToastUpload/helperComponents/FileItem/styles.module.scss +93 -0
  107. package/src/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.tsx +38 -0
  108. package/src/components/ToastUpload/helperComponents/LoadingStatus/index.ts +1 -0
  109. package/src/components/ToastUpload/helperComponents/LoadingStatus/styles.module.scss +8 -0
  110. package/src/components/ToastUpload/index.ts +1 -0
  111. package/src/components/ToastUpload/styles.module.scss +123 -0
  112. package/src/components/ToastUpload/types.ts +67 -0
  113. package/src/components/ToastUpload/utils/formatPercent.ts +1 -0
  114. package/src/components/ToastUpload/utils/index.ts +1 -0
  115. package/src/components/ToasterContainer/styles.module.scss +1 -1
  116. package/src/components/index.ts +1 -0
  117. package/src/constants.ts +91 -2
  118. package/src/helperComponents/ButtonTextNeutral/ButtonTextNeutral.tsx +23 -0
  119. package/src/helperComponents/ButtonTextNeutral/index.ts +1 -0
  120. package/src/helperComponents/ButtonTextNeutral/styles.module.scss +42 -0
  121. package/src/helpers.tsx +35 -0
  122. package/src/index.ts +7 -1
  123. package/src/testIds.ts +17 -0
  124. package/src/types.ts +7 -1
package/src/helpers.tsx CHANGED
@@ -9,9 +9,11 @@ import {
9
9
  ToasterContainerProps,
10
10
  ToastSystemEvent,
11
11
  ToastSystemEventProps,
12
+ ToastUploadProps,
12
13
  ToastUserAction,
13
14
  ToastUserActionProps,
14
15
  } from './components';
16
+ import { ToastUploadForToaster } from './components/ToastUpload/ToastUploadToaster';
15
17
  import {
16
18
  AUTO_CLOSE_TIME,
17
19
  TOASTER_CONTAINER_DEFAULT_PROPS,
@@ -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 <ToastUploadForToaster {...(toasterProps as ToastUploadProps)} />;
100
105
  default:
101
106
  return undefined;
102
107
  }
@@ -331,7 +336,37 @@ const systemEvent = {
331
336
  },
332
337
  };
333
338
 
339
+ const upload = {
340
+ startOrUpdate({ id, ...options }: UploadOptions) {
341
+ const toastId = id || TOASTER_TYPE.Upload;
342
+
343
+ if (toast.isActive(toastId)) {
344
+ return updateToast(toastId, {
345
+ type: TOASTER_TYPE.Upload,
346
+ toasterProps: { ...options, loading: true },
347
+ });
348
+ }
349
+
350
+ return openToast({
351
+ type: TOASTER_TYPE.Upload,
352
+ toasterProps: {
353
+ ...options,
354
+ loading: true,
355
+ },
356
+ toastOptions: {
357
+ id: toastId,
358
+ onClose: options.onClose,
359
+ },
360
+ });
361
+ },
362
+
363
+ dismiss(id?: ToasterId) {
364
+ return toast.dismiss(id);
365
+ },
366
+ };
367
+
334
368
  export const toaster: Toaster = {
335
369
  userAction,
336
370
  systemEvent,
371
+ upload,
337
372
  };
package/src/index.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  export { toaster, openToast, updateToast, dismissToast } from './helpers';
2
- export type { ToastSystemEventProps, ToastUserActionProps, ToasterContainerProps } from './components';
2
+ export type {
3
+ ToastSystemEventProps,
4
+ ToastUserActionProps,
5
+ ToasterContainerProps,
6
+ ToastUploadProps,
7
+ } from './components';
3
8
  export type {
4
9
  Toaster,
5
10
  UpdateToast,
@@ -8,5 +13,6 @@ export type {
8
13
  SystemEventOptions,
9
14
  ToasterId,
10
15
  ToastOptions,
16
+ UploadOptions,
11
17
  } from './types';
12
18
  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
  };