estoy haciendo un custom que simula el add to cart pero no logro que se actualice el minicart con el hook de addItems de vtex order items sin tener que cambiar de vista, al momento de ejecutar aparece en el orferform mi nuevo producto con su nuevo seller pero no se actualiza en el minicart hasta que navego en otra sección, esto lo hacemos para enviar un seller en especifico de acuerdo a una tienda elegida por el usuario, he intentado mandar un evento pero tampoco me funciona les dejo mi codigo completo de la custom
import React,{useMemo}from 'react';
import { OrderFormProvider } from 'vtex.order-manager/OrderForm'
import { OrderItemsProvider, useOrderItems } from 'vtex.order-items/OrderItems'
import { useProduct } from 'vtex.product-context'
import { usePixel } from 'vtex.pixel-manager'
import { mapCatalogItemToCart } from 'vtex.add-to-cart-button'
import { ToastProvider, ToastConsumer } from 'vtex.styleguide'
const AddToCartCustom = () => (
<OrderFormProvider>
<OrderItemsProvider>
<MyComponent />
</OrderItemsProvider>
</OrderFormProvider>
)
const MyComponent = (props) => {
// const { orderForm: { items } } = useOrderForm()
const { addItems } = useOrderItems()
const productContext = useProduct()
const { push } = usePixel()
const product = productContext?.product
const items = productContext?.product?.items
// console.log(items, 'items', product, 'product')
const selectedItem = productContext?.selectedItem
const assemblyOptions = productContext?.assemblyOptions
const seller = {
...productContext?.selectedItem?.sellers[0],
sellerId: 'misellerId',
sellerName:'nombre de seller'
}
const selectedQuantity = productContext?.selectedQuantity;
const eventAddToCart = product => {
console.log(product)
dataLayer.push({
event: 'addToCart',
ecommerce: {
detail: {
products: [
{
product: product,
},
],
},
},
})
const pixelEventItems = [product];
const pixelEvent =
{
id: 'add-to-cart-button',
event: 'addToCart',
items: pixelEventItems,
}
push(pixelEvent)
}
const skuItems = useMemo(
() =>
props.skuItems ??
mapCatalogItemToCart({
product,
selectedItem,
selectedQuantity,
selectedSeller: seller,
assemblyOptions,
}),
[
assemblyOptions,
product,
props.skuItems,
selectedItem,
selectedQuantity,
seller,
]
)
const handleClick = async (e, toast)=>{
// e.preventDefault()
// e.stopPropagation()
console.log('agregar producto',addItems);
await addItems(skuItems)
await eventAddToCart(skuItems)
setTimeout(() => {
toast('Item agregado al carrito.')
}, 1600)
}
return(
<ToastProvider positioning="window">
<div className="w-100 vtex-div-quantify" style={{ textAlign: 'center' }}>
<ToastConsumer>
{({ showToast }) => (
<p className="vtex-add-to-cart" onClick={event=>handleClick(event,showToast)}>agregar custom add to cart</p>
)}
</ToastConsumer>
</div>
</ToastProvider>
)
}
export default AddToCartCustom;