Price Summary Talons
Functions
- usePriceSummary(props) ⇒
PriceSummaryTalonProps - This talon contains logic for a price summary component. It performs effects and returns prop data for rendering the component. This talon performs the following effects: - Log a GraphQL error if it occurs when getting the price summary
Typedefs
- FlattenedData :
Object - Query data flattened into a simple object.
- PriceSummaryQueries :
Object - GraphQL queries for price summary component.
- PriceSummaryTalonProps :
Object - Props used for rendering a price summary component.
This talon contains logic for a price summary component. It performs effects and returns prop data for rendering the component.
This talon performs the following effects:
- Log a GraphQL error if it occurs when getting the price summary
Returns: ** **Parameters
Name | Type | Description |
---|---|---|
props | Object |
|
props.queries | PriceSummaryQueries |
GraphQL queries for a price summary component. |
Example (Importing into your project)
import { usePriceSummary } from '@magento/peregrine/lib/talons/CartPage/PriceSummary/usePriceSummary';
Query data flattened into a simple object.
Properties
Name | Type | Description |
---|---|---|
subtotal | String |
Cart subtotal (excluding tax) |
total | String |
Cart grand total |
discounts | Array.<Object> |
Discounts applied to the cart |
giftCards | Array.<Object> |
Gift cards applied to the cart |
taxes | Array.<Object> |
Taxes applied to the cart |
shipping | Array.<Object> |
Shipping addresses associated with this cart |
GraphQL queries for price summary component.
See: priceSummary.js
for the queries used in Venia.
Properties
Name | Type | Description |
---|---|---|
getPriceSummary | GraphQLAST |
Query to get the price summary for a cart |
Props used for rendering a price summary component.
Properties
Name | Type | Description |
---|---|---|
handleProceedToCheckout | function |
Callback function which navigates the browser to the checkout |
hasError | boolean |
True if a GraphQL query returns an error. False otherwise. |
hasItems | boolean |
True if the cart has any items. False otherwise. |
isLoading | boolean |
True while the GraphQL query is still in flight. False otherwise. |
flatData | FlattenedData |
Query data that has been flattened into a simple object |
Source Code: pwa-studio/packages/peregrine/lib/talons/CartPage/PriceSummary/usePriceSummary.js
Examples
usePriceSummary()
import React from 'react'
import { usePriceSummary } from '@magento/peregrine/lib/talons/CartPage/PriceSummary/usePriceSummary';
import { GET_PRICE_SUMMARY } from './myPriceSummary.gql';
const MyPriceSummary = props => {
const { isUpdating } = props;
const talonProps = usePriceSummary({
queries: {
getPriceSummary: GET_PRICE_SUMMARY
}
});
const {
handleProceedToCheckout,
hasError,
hasItems,
isCheckout,
isLoading,
flatData
} = talonProps;
if (hasError) {
return (
<div>
Something went wrong. Please refresh and try again.
</div>
);
} else if (!hasItems || isLoading) {
return null;
}
const { subtotal, total, discounts, giftCards, taxes, shipping } = flatData;
return (
// JSX that renders a price summary component using data from the talon
)
}
export default MyPriceSummary