// eslint-disable-next-line no-restricted-imports import 'react-toastify/dist/ReactToastify.css'; import { css, Global } from '@emotion/react'; import React from 'react'; import { createPortal } from 'react-dom'; import { toast, ToastContainer, ToastContainerProps } from 'react-toastify'; import { BaseColorTokens } from '../../foundation/Colors'; import { TypographyTokens } from '../../foundation/Typography'; import { NotificationContent } from './NotificationContent'; export type ShowNotificationParams = { Component?: React.FunctionComponent; autoClose?: number | false; colorToken: BaseColorTokens; content: string; contentTypographyToken?: TypographyTokens; onCloseNotification?: () => void; title: string; titleTypographyToken?: TypographyTokens; }; export type ShowCustomNotificationParams = { Component: React.FunctionComponent; autoClose?: number | false; }; export const showNotification = ({ titleTypographyToken = 'bodyMediumMedium', contentTypographyToken = 'bodySmallMedium', content, title, colorToken, autoClose = false, onCloseNotification, }: ShowNotificationParams) => { toast( ({ closeToast }) => ( ), { autoClose, closeButton: false, }, ); }; export const showCustomNotification = ({ autoClose = false, Component, }: ShowCustomNotificationParams) => { toast(() => , { autoClose, closeButton: false, closeOnClick: true, }); }; const globalToastStyle = css` .Toastify__toast-container { top: 62px; } .Toastify__toast-body { padding: 0; } .Toastify__toast { padding: 0; min-height: auto; background: transparent; border-radius: 4px; } `; export const Notifications: React.FC = (props) => { return createPortal( <> , document.body, ); };