1- import { cloneElement , isValidElement , ReactElement } from 'react' ;
21import {
32 Id ,
43 NotValidatedToastProps ,
54 OnChangeCallback ,
65 Toast ,
76 ToastContainerProps ,
87 ToastContent ,
9- ToastContentProps ,
108 ToastProps
119} from '../types' ;
12- import { canBeRendered , getAutoCloseDelay , isFn , isNum , isStr , parseClassName , toToastItem } from '../utils' ;
10+ import { canBeRendered , getAutoCloseDelay , isNum , parseClassName , toToastItem } from '../utils' ;
1311
1412type Notify = ( ) => void ;
1513
@@ -89,10 +87,6 @@ export function createContainerObserver(
8987 if ( shouldIgnoreToast ( options ) ) return ;
9088
9189 const { toastId, updateId, data, staleId, delay } = options ;
92- const closeToast = ( removedByUser ?: true ) => {
93- toasts . get ( toastId ) ! . removalReason = removedByUser ;
94- removeToast ( toastId ) ;
95- } ;
9690
9791 const isNotAnUpdate = updateId == null ;
9892
@@ -106,11 +100,14 @@ export function createContainerObserver(
106100 toastId,
107101 updateId,
108102 data,
109- closeToast,
110103 isIn : false ,
111104 className : parseClassName ( options . className || props . toastClassName ) ,
112105 progressClassName : parseClassName ( options . progressClassName || props . progressClassName ) ,
113106 autoClose : options . isLoading ? false : getAutoCloseDelay ( options . autoClose , props . autoClose ) ,
107+ closeToast ( reason ?: true ) {
108+ toasts . get ( toastId ) ! . removalReason = reason ;
109+ removeToast ( toastId ) ;
110+ } ,
114111 deleteToast ( ) {
115112 const toastToRemove = toasts . get ( toastId ) ;
116113
@@ -139,20 +136,8 @@ export function createContainerObserver(
139136 toastProps . closeButton = canBeRendered ( props . closeButton ) ? props . closeButton : true ;
140137 }
141138
142- let toastContent = content ;
143-
144- if ( isValidElement ( content ) && ! isStr ( content . type ) ) {
145- toastContent = cloneElement < ToastContentProps > ( content as ReactElement < any > , {
146- closeToast,
147- toastProps,
148- data
149- } ) ;
150- } else if ( isFn ( content ) ) {
151- toastContent = content ( { closeToast, toastProps, data : data as TData } ) ;
152- }
153-
154139 const activeToast = {
155- content : toastContent ,
140+ content,
156141 props : toastProps ,
157142 staleId
158143 } as Toast ;
0 commit comments