UNPKG

@totalsoft/rocket-ui

Version:

A set of reusable and composable React components built on top of Material UI core for developing fast and friendly web applications interfaces.

48 lines 2 kB
// Copyright (c) TotalSoft. // This source code is licensed under the MIT license. import { useCallback } from 'react'; import { toast } from 'react-toastify'; import { classes } from './ToastStyles'; import cx from 'classnames'; import { getTransitionType } from './types'; import Toast from './utils'; import React from 'react'; const useToast = () => { return useCallback( /** * * @param {ToastContent} message The content to be displayed. It can be a string or a React component. * @param {('success'|'info'|'warning'|'error')} variant The type of the toast * @param {ToastOptions} options Additional options passed to the toast */ (message, variant, { transitionType, actions, ...restOptions } = {}) => { const toastClasses = cx({ [classes[variant]]: variant, [classes['default']]: true }); const options = { ...restOptions, transition: getTransitionType(transitionType), className: toastClasses }; switch (variant) { case 'error': toast.error(React.createElement(Toast, { message: message, variant: variant, actions: actions }), options); break; case 'info': toast.info(React.createElement(Toast, { message: message, variant: variant, actions: actions }), options); break; case 'success': toast.success(React.createElement(Toast, { message: message, variant: variant, actions: actions }), options); break; case 'warning': toast.warn(React.createElement(Toast, { message: message, variant: variant, actions: actions }), options); break; default: toast(React.createElement(Toast, { message: message, variant: variant, actions: actions }), options); break; } }, []); }; export default useToast; //# sourceMappingURL=useToast.js.map