@@ -106,24 +106,32 @@ export function ToastContainer(props: SpectrumToastContainerProps): ReactElement
106
106
let activeToastContainer = useActiveToastContainer ( ) ;
107
107
let state = useToastQueue ( getGlobalToastQueue ( ) ) ;
108
108
109
- let placement = useMemo ( ( ) => {
110
- let placements = props . placement ?. split ( ' ' ) ;
111
- return placements ?. [ placements . length - 1 ] || 'bottom' ;
109
+ let { placement, isCentered} = useMemo ( ( ) => {
110
+ let placements = ( props . placement ?? 'bottom' ) . split ( ' ' ) ;
111
+ let placement = placements [ placements . length - 1 ] ;
112
+ let isCentered = placements . length === 1 ;
113
+ return { placement, isCentered} ;
112
114
} , [ props . placement ] ) ;
113
115
114
116
if ( ref === activeToastContainer && state . visibleToasts . length > 0 ) {
115
117
return (
116
118
< Toaster state = { state } { ...props } >
117
119
< ol className = { classNames ( toastContainerStyles , 'spectrum-ToastContainer-list' ) } >
118
- { state . visibleToasts . slice ( ) . reverse ( ) . map ( ( toast ) => {
120
+ { state . visibleToasts . slice ( ) . reverse ( ) . map ( ( toast , index ) => {
121
+ let shouldFade = isCentered && index !== 0 ;
119
122
return (
120
123
< li
121
124
key = { toast . key }
122
125
className = { classNames ( toastContainerStyles , 'spectrum-ToastContainer-listitem' ) }
123
126
style = { {
124
127
// @ts -expect-error
125
128
viewTransitionName : `_${ toast . key . slice ( 2 ) } ` ,
126
- viewTransitionClass : classNames ( toastContainerStyles , 'toast' , placement )
129
+ viewTransitionClass : classNames (
130
+ toastContainerStyles ,
131
+ 'toast' ,
132
+ placement ,
133
+ { 'fadeOnly' : shouldFade }
134
+ )
127
135
} } >
128
136
< Toast
129
137
toast = { toast }
0 commit comments