Skip to content

Commit

Permalink
Merge pull request #2055 from graphcommerce-org/fix/GCOM-1065
Browse files Browse the repository at this point in the history
chore(GCOM-1065): Refetch cart data after useMergeCustomerCart to ensure cart data availability.
  • Loading branch information
carlocarels90 authored Sep 18, 2023
2 parents 80696c3 + 111ec6b commit f56a33c
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/ten-suns-obey.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@graphcommerce/magento-cart': patch
---

Refetch cart data after useMergeCustomerCart to ensure cart data availability.
17 changes: 17 additions & 0 deletions packages/magento-cart/graphql/CartRestore.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
query CartRestore($cartId: String!) {
cart(cart_id: $cartId) {
id
__typename
items {
__typename
...CartItem
}
prices {
grand_total {
currency
value
}
}
...CartTotalQuantity
}
}
8 changes: 7 additions & 1 deletion packages/magento-cart/hooks/useMergeCustomerCart.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { useMutation } from '@graphcommerce/graphql'
import { useCustomerQuery } from '@graphcommerce/magento-customer'
import { useEffect } from 'react'
import { CartRestoreDocument } from '../graphql/CartRestore.gql'
import { CustomerCartDocument } from './CustomerCart.gql'
import { UseMergeCustomerCartDocument } from './UseMergeCustomerCart.gql'
import { useAssignCurrentCartId } from './useAssignCurrentCartId'
import { useCartQuery } from './useCartQuery'
import { useCurrentCartId } from './useCurrentCartId'

/**
Expand All @@ -13,7 +15,11 @@ import { useCurrentCartId } from './useCurrentCartId'
export function useMergeCustomerCart() {
const { currentCartId } = useCurrentCartId()
const assignCurrentCartId = useAssignCurrentCartId()
const [merge] = useMutation(UseMergeCustomerCartDocument, { errorPolicy: 'all' })
const { refetch } = useCartQuery(CartRestoreDocument)
const [merge] = useMutation(UseMergeCustomerCartDocument, {
errorPolicy: 'all',
onCompleted: () => refetch(),
})

const destinationCartId = useCustomerQuery(CustomerCartDocument)?.data?.customerCart.id

Expand Down

0 comments on commit f56a33c

Please sign in to comment.