toastr.ts 1014 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { toast, ToastContent, ToastOptions } from 'react-toastify';
  2. import { toArrayIfNot } from '~/utils/array-utils';
  3. export const toastErrorOption: ToastOptions = {
  4. autoClose: false,
  5. closeButton: true,
  6. };
  7. export const toastError = (err: string | Error | Error[], option: ToastOptions = toastErrorOption): void => {
  8. const errs = toArrayIfNot(err);
  9. if (errs.length === 0) {
  10. return;
  11. }
  12. for (const err of errs) {
  13. const message = (typeof err === 'string') ? err : err.message;
  14. toast.error(message, option);
  15. }
  16. };
  17. export const toastSuccessOption: ToastOptions = {
  18. autoClose: 2000,
  19. closeButton: true,
  20. };
  21. export const toastSuccess = (content: ToastContent, option: ToastOptions = toastSuccessOption): void => {
  22. toast.success(content, option);
  23. };
  24. export const toastWarningOption: ToastOptions = {
  25. autoClose: 5000,
  26. closeButton: true,
  27. };
  28. export const toastWarning = (content: ToastContent, option: ToastOptions = toastWarningOption): void => {
  29. toast.warning(content, option);
  30. };