react-toastify-redux
Version:
react-toastify with Redux
34 lines (30 loc) • 1.23 kB
text/typescript
import * as types from './types';
import {toast, ToastType} from "react-toastify";
import uniqueId from './utils/uniqueId';
import {
ToastAction, DismissActionPayload, Toast, ToastOptions, UpdateActionOptions, UpdateActionPayload
} from './definitions';
export const toastActionCreator = (type: ToastType) => {
return (message: any, options: ToastOptions = {}): ToastAction<Toast> => ({
type: types.TOAST_MESSAGE,
payload: {
id: options.id || uniqueId('toast'),
...options,
message,
type
}
});
};
export const dismiss = (id?: string): ToastAction<DismissActionPayload> => ({
type: types.TOAST_DISMISS,
payload: {id}
});
export const update = (id: string, options: UpdateActionOptions): ToastAction<UpdateActionPayload> => ({
type: types.TOAST_UPDATE,
payload: {id, options}
});
export const error = toastActionCreator(toast.TYPE.ERROR as ToastType);
export const warning = toastActionCreator(toast.TYPE.WARNING as ToastType);
export const info = toastActionCreator(toast.TYPE.INFO as ToastType);
export const message = toastActionCreator(toast.TYPE.DEFAULT as ToastType);
export const success = toastActionCreator(toast.TYPE.SUCCESS as ToastType);