@snack-uikit/toaster 0.8.13 → 0.8.14-preview-b5e187d5.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 (102) hide show
  1. package/dist/cjs/components/ToastSystemEvent/styles.module.css +3 -3
  2. package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +19 -0
  3. package/dist/cjs/components/ToastUpload/ToastUpload.js +109 -0
  4. package/dist/cjs/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  5. package/dist/cjs/components/ToastUpload/ToastUploadToaster.js +16 -0
  6. package/dist/cjs/components/ToastUpload/components/ButtonAction/ButtonAction.d.ts +3 -0
  7. package/dist/cjs/components/ToastUpload/components/ButtonAction/ButtonAction.js +32 -0
  8. package/dist/cjs/components/ToastUpload/components/ButtonAction/index.d.ts +1 -0
  9. package/dist/cjs/components/ToastUpload/components/ButtonAction/index.js +25 -0
  10. package/dist/cjs/components/ToastUpload/components/ButtonAction/styles.module.css +30 -0
  11. package/dist/cjs/components/ToastUpload/components/FileItem/FileItem.d.ts +5 -0
  12. package/dist/cjs/components/ToastUpload/components/FileItem/FileItem.js +81 -0
  13. package/dist/cjs/components/ToastUpload/components/FileItem/index.d.ts +1 -0
  14. package/dist/cjs/components/ToastUpload/components/FileItem/index.js +25 -0
  15. package/dist/cjs/components/ToastUpload/components/FileItem/styles.module.css +85 -0
  16. package/dist/cjs/components/ToastUpload/components/LoadingStatus/LoadingStatus.d.ts +6 -0
  17. package/dist/cjs/components/ToastUpload/components/LoadingStatus/LoadingStatus.js +42 -0
  18. package/dist/cjs/components/ToastUpload/components/LoadingStatus/index.d.ts +1 -0
  19. package/dist/cjs/components/ToastUpload/components/LoadingStatus/index.js +25 -0
  20. package/dist/cjs/components/ToastUpload/components/LoadingStatus/styles.module.css +3 -0
  21. package/dist/cjs/components/ToastUpload/constants.d.ts +16 -0
  22. package/dist/cjs/components/ToastUpload/constants.js +26 -0
  23. package/dist/cjs/components/ToastUpload/index.d.ts +1 -0
  24. package/dist/cjs/components/ToastUpload/index.js +25 -0
  25. package/dist/cjs/components/ToastUpload/styles.module.css +103 -0
  26. package/dist/cjs/components/ToastUpload/types.d.ts +31 -0
  27. package/dist/cjs/components/ToastUpload/types.js +5 -0
  28. package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  29. package/dist/cjs/components/ToastUpload/utils/formatPercent.js +8 -0
  30. package/dist/cjs/components/ToastUpload/utils/index.d.ts +1 -0
  31. package/dist/cjs/components/ToastUpload/utils/index.js +25 -0
  32. package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
  33. package/dist/cjs/components/index.d.ts +1 -0
  34. package/dist/cjs/components/index.js +2 -1
  35. package/dist/cjs/constants.d.ts +2 -4
  36. package/dist/cjs/constants.js +10 -2
  37. package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
  38. package/dist/cjs/helpers.js +41 -1
  39. package/dist/cjs/types.d.ts +9 -1
  40. package/dist/esm/components/ToastSystemEvent/styles.module.css +3 -3
  41. package/dist/esm/components/ToastUpload/ToastUpload.d.ts +19 -0
  42. package/dist/esm/components/ToastUpload/ToastUpload.js +34 -0
  43. package/dist/esm/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  44. package/dist/esm/components/ToastUpload/ToastUploadToaster.js +7 -0
  45. package/dist/esm/components/ToastUpload/components/ButtonAction/ButtonAction.d.ts +3 -0
  46. package/dist/esm/components/ToastUpload/components/ButtonAction/ButtonAction.js +18 -0
  47. package/dist/esm/components/ToastUpload/components/ButtonAction/index.d.ts +1 -0
  48. package/dist/esm/components/ToastUpload/components/ButtonAction/index.js +1 -0
  49. package/dist/esm/components/ToastUpload/components/ButtonAction/styles.module.css +30 -0
  50. package/dist/esm/components/ToastUpload/components/FileItem/FileItem.d.ts +5 -0
  51. package/dist/esm/components/ToastUpload/components/FileItem/FileItem.js +22 -0
  52. package/dist/esm/components/ToastUpload/components/FileItem/index.d.ts +1 -0
  53. package/dist/esm/components/ToastUpload/components/FileItem/index.js +1 -0
  54. package/dist/esm/components/ToastUpload/components/FileItem/styles.module.css +85 -0
  55. package/dist/esm/components/ToastUpload/components/LoadingStatus/LoadingStatus.d.ts +6 -0
  56. package/dist/esm/components/ToastUpload/components/LoadingStatus/LoadingStatus.js +16 -0
  57. package/dist/esm/components/ToastUpload/components/LoadingStatus/index.d.ts +1 -0
  58. package/dist/esm/components/ToastUpload/components/LoadingStatus/index.js +1 -0
  59. package/dist/esm/components/ToastUpload/components/LoadingStatus/styles.module.css +3 -0
  60. package/dist/esm/components/ToastUpload/constants.d.ts +16 -0
  61. package/dist/esm/components/ToastUpload/constants.js +20 -0
  62. package/dist/esm/components/ToastUpload/index.d.ts +1 -0
  63. package/dist/esm/components/ToastUpload/index.js +1 -0
  64. package/dist/esm/components/ToastUpload/styles.module.css +103 -0
  65. package/dist/esm/components/ToastUpload/types.d.ts +31 -0
  66. package/dist/esm/components/ToastUpload/types.js +1 -0
  67. package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  68. package/dist/esm/components/ToastUpload/utils/formatPercent.js +1 -0
  69. package/dist/esm/components/ToastUpload/utils/index.d.ts +1 -0
  70. package/dist/esm/components/ToastUpload/utils/index.js +1 -0
  71. package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
  72. package/dist/esm/components/index.d.ts +1 -0
  73. package/dist/esm/components/index.js +1 -0
  74. package/dist/esm/constants.d.ts +2 -4
  75. package/dist/esm/constants.js +8 -0
  76. package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
  77. package/dist/esm/helpers.js +38 -0
  78. package/dist/esm/types.d.ts +9 -1
  79. package/package.json +6 -5
  80. package/src/components/ToastSystemEvent/styles.module.scss +2 -2
  81. package/src/components/ToastUpload/ToastUpload.tsx +108 -0
  82. package/src/components/ToastUpload/ToastUploadToaster.tsx +11 -0
  83. package/src/components/ToastUpload/components/ButtonAction/ButtonAction.tsx +10 -0
  84. package/src/components/ToastUpload/components/ButtonAction/index.ts +1 -0
  85. package/src/components/ToastUpload/components/ButtonAction/styles.module.scss +45 -0
  86. package/src/components/ToastUpload/components/FileItem/FileItem.tsx +74 -0
  87. package/src/components/ToastUpload/components/FileItem/index.ts +1 -0
  88. package/src/components/ToastUpload/components/FileItem/styles.module.scss +93 -0
  89. package/src/components/ToastUpload/components/LoadingStatus/LoadingStatus.tsx +38 -0
  90. package/src/components/ToastUpload/components/LoadingStatus/index.ts +1 -0
  91. package/src/components/ToastUpload/components/LoadingStatus/styles.module.scss +8 -0
  92. package/src/components/ToastUpload/constants.ts +26 -0
  93. package/src/components/ToastUpload/index.ts +1 -0
  94. package/src/components/ToastUpload/styles.module.scss +113 -0
  95. package/src/components/ToastUpload/types.ts +39 -0
  96. package/src/components/ToastUpload/utils/formatPercent.ts +1 -0
  97. package/src/components/ToastUpload/utils/index.ts +1 -0
  98. package/src/components/ToasterContainer/styles.module.scss +1 -1
  99. package/src/components/index.ts +1 -0
  100. package/src/constants.ts +9 -1
  101. package/src/helpers.tsx +35 -0
  102. 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.SystemEvent,
346
+ toasterProps: { ...options },
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/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
  };