Skip to content

Commit

Permalink
Fixed graphql blocker issue for this ticket
Browse files Browse the repository at this point in the history
  • Loading branch information
del22123 committed Jan 22, 2025
1 parent e8db710 commit 561e480
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@ import { gql } from '@apollo/client';

export const GET_CMS_DYNAMIC_BLOCKS = gql`
query GetCmsDynamicBlocks(
$cartId: String
$productId: ID
$type: DynamicBlockTypeEnum!
$locations: [DynamicBlockLocationEnum]
$uids: [ID]!
) {
dynamicBlocks(
input: {
cart_id: $cartId
product_uid: $productId
dynamic_block_uids: $uids
locations: $locations
type: $type
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useEffect, useCallback } from 'react';
import { useQuery } from '@apollo/client';
import { useLocation } from 'react-router-dom';

import { useCartContext } from '@magento/peregrine/lib/context/cart';
import mergeOperations from '@magento/peregrine/lib/util/shallowMerge';
Expand Down Expand Up @@ -72,51 +71,18 @@ export const flatten = cartData => {
export const useCmsDynamicBlock = props => {
const { locations, uids, type } = props;
const operations = mergeOperations(DEFAULT_OPERATIONS, props.operations);
const {
getCmsDynamicBlocksQuery,
getSalesRulesDataQuery,
getStoreConfigData,
getProductDetailQuery
} = operations;
const { getCmsDynamicBlocksQuery, getSalesRulesDataQuery } = operations;

const [{ cartId }] = useCartContext();
const { pathname } = useLocation();

// Get Product Data from cache
const { data: storeConfigData, loading: storeConfigLoading } = useQuery(
getStoreConfigData
);
const slug = pathname.split('/').pop();
const productUrlSuffix = storeConfigData?.storeConfig?.product_url_suffix;
const urlKey = productUrlSuffix ? slug.replace(productUrlSuffix, '') : slug;
const { data: productData, loading: productDataLoading } = useQuery(
getProductDetailQuery,
{
skip: !storeConfigData,
variables: {
urlKey
}
}
);

// @TODO: Update with uid when done in Product Root Component
const products =
productData?.products?.items && productData.products.items.length > 0
? productData.products.items
: [];
const productUid = products.find(item => item.url_key === urlKey)?.uid;

const { client, loading, error, data, refetch } = useQuery(
getCmsDynamicBlocksQuery,
{
variables: {
cartId,
type,
locations,
uids,
...(productUid ? { productId: productUid } : {})
},
skip: !cartId
uids
}
}
);

Expand All @@ -129,8 +95,7 @@ export const useCmsDynamicBlock = props => {
);

const currentSalesRulesData = flatten(cartData);
const isLoading =
loading || cartLoading || storeConfigLoading || productDataLoading;
const isLoading = loading || cartLoading;
const cachedSalesRulesData = data?.dynamicBlocks?.salesRulesData;

const updateSalesRulesData = useCallback(
Expand All @@ -144,24 +109,13 @@ export const useCmsDynamicBlock = props => {
}
},
variables: {
cartId,
type,
locations,
uids,
...(productUid ? { productId: productUid } : {})
},
skip: !cartId
uids
}
});
},
[
cartId,
client,
getCmsDynamicBlocksQuery,
locations,
productUid,
type,
uids
]
[client, getCmsDynamicBlocksQuery, locations, type, uids]
);

useEffect(() => {
Expand Down

0 comments on commit 561e480

Please sign in to comment.