@@ -9,6 +9,7 @@ export const useCart = () => {
99 const cart = useState < CartFieldsFragment | undefined > ( 'shopify-cart' , ( ) => undefined )
1010 const loading = useState ( 'shopify-cart-loading' , ( ) => ref ( false ) )
1111 const open = useState ( 'shopify-cart-open' , ( ) => ref ( false ) )
12+
1213 const id = useCookie < string > ( 'shopify-cart-id' , undefined )
1314
1415 const lines = computed ( ( ) => flattenConnection ( cart . value ?. lines ) )
@@ -18,6 +19,17 @@ export const useCart = () => {
1819
1920 const setLoading = async ( value : boolean ) => loading . value = value
2021
22+ const getAvatar = ( variantId : string , lines ?: CartFieldsFragment [ 'lines' ] ) => {
23+ const line = lines ?. edges ?. find ( line => line . node . merchandise . id === variantId )
24+
25+ return line ?. node . merchandise . image
26+ ? {
27+ src : line . node . merchandise . image . url + '?width=88&height=88' ,
28+ alt : line . node . merchandise . image . altText || undefined ,
29+ }
30+ : undefined
31+ }
32+
2133 const init = ( ) => setLoading ( true ) . then ( ( ) => storefront . request ( `#graphql
2234 mutation CreateCart($language: LanguageCode, $country: CountryCode)
2335 @inContext(language: $language, country: $country) {
@@ -99,10 +111,12 @@ export const useCart = () => {
99111
100112 if ( ! open . value ) toast . add ( {
101113 title : t ( 'cart.toast.add' ) ,
114+ avatar : getAvatar ( variantId , data ?. cartLinesAdd ?. cart ?. lines ) ,
102115 actions : [
103116 { label : t ( 'cart.toast.view' ) , onClick : ( ) => { open . value = true } } ,
104117 ] ,
105118 color : 'success' ,
119+ ui : { avatar : 'rounded-sm size-14' } ,
106120 } )
107121 } ) . catch ( ( ) => toast . add ( {
108122 title : t ( 'cart.toast.error.add' ) ,
@@ -144,10 +158,12 @@ export const useCart = () => {
144158
145159 if ( ! open . value ) toast . add ( {
146160 title : t ( 'cart.toast.update' ) ,
161+ avatar : getAvatar ( variantId , data ?. cartLinesUpdate ?. cart ?. lines ) ,
147162 actions : [
148163 { label : t ( 'cart.toast.view' ) , onClick : ( ) => { open . value = true } } ,
149164 ] ,
150165 color : 'success' ,
166+ ui : { avatar : 'rounded-sm size-14' } ,
151167 } )
152168 } ) . catch ( ( ) => toast . add ( {
153169 title : t ( 'cart.toast.error.update' ) ,
0 commit comments