GiftCards
Functions
- useGiftCards(props) ⇒ GiftCardsTalonProps
- Handles the logic for a component that renders a list of gift cards. It performs effects and returns the prop data necessary for rendering the component. - This talon performs the following effects: - Fetch the currently applied gift cards for a cart
- Manage the updating state of the cart while a gift card is being applied or removed
 
- useGiftCard(props) ⇒ GiftCardTalonProps
- Provide logic for a single gift card component. 
Typedefs
- GiftCardsMutations : Object
- GraphQL mutations for Gift Cards. 
- GiftCardsQueries : Object
- GraphQL queries for Gift Cards. 
- GiftCardsTalonProps : Object
- Props data to use when rendering a list of gift cards. 
- GiftCardTalonProps : Object
- Props data to use when rendering a single gift card component. 
Handles the logic for a component that renders a list of gift cards. It performs effects and returns the prop data necessary for rendering the component.
This talon performs the following effects:
- Fetch the currently applied gift cards for a cart
- Manage the updating state of the cart while a gift card is being applied or removed
Returns: Parameters
| Name | Type | Description | 
|---|---|---|
| props | Object | |
| props.setIsCartUpdating | function | Callback function for setting the update state for the cart. | 
| props.mutations | GraphQL mutations for Gift Cards | |
| props.queries | GraphQL queries for Gift Cards | 
Example (Importing into your project)
Copied to your clipboardimport { useGiftCards } from '@magento/peregrine/lib/talons/CartPage/GiftCards'
Provide logic for a single gift card component.
Returns: Parameters
| Name | Type | Description | 
|---|---|---|
| props | Object | |
| props.code | String | Gift card's code | 
| props.removeGiftCard | function | A function that removes a gift card when provided a code | 
Example (Importing into your project)
Copied to your clipboardimport { useGiftCard } from '@magento/peregrine/lib/talons/CartPage/GiftCards/useGiftCard';
GraphQL mutations for Gift Cards.
See: giftCardQueries.ee.js
for queries used in Venia
Properties
| Name | Type | Description | 
|---|---|---|
| applyGiftCardMutation | GraphQLAST | The mutation used to apply a gift card to the cart. | 
| removeGiftCardMutation | GraphQLAST | The mutation used to remove a gift card from the cart. | 
GraphQL queries for Gift Cards.
See: giftCardQueries.ee.js
for queries used in Venia
Properties
| Name | Type | Description | 
|---|---|---|
| getAppliedGiftCardsQuery | GraphQLAST | The query used to get the gift cards currently applied to the cart. | 
| getGiftCardBalanceQuery | GraphQLAST | The query used to get the gift cards currently applied to the cart. | 
Props data to use when rendering a list of gift cards.
Properties
| Name | Type | Description | 
|---|---|---|
| applyGiftCard | function | A callback to apply a gift card to the cart. | 
| checkBalanceData | Object | The giftCardAccount object of the most recent successful check balance GraphQL query. | 
| checkGiftCardBalance | function | A callback to check the balance of a gift card. | 
| errorLoadingGiftCards | boolean | Whether there was an error loading the cart's gift cards. | 
| errorApplyingCard | boolean | Whether there was an error applying the gift card. | 
| errorCheckingBalance | boolean | Whether there was an error checking the balance of the gift card. | 
| errorRemovingCard | boolean | Whether there was an error removing the gift card. | 
| giftCardsData | Array | The applied_gift_cards object of the cart query. | 
| isLoadingGiftCards | boolean | Whether the cart's gift card data is loading. | 
| isApplyingCard | boolean | Whether the apply gift card operation is in progress. | 
| isCheckingBalance | boolean | Whether the check gift card balance operation is in progress. | 
| isRemovingCard | boolean | Whether the remove gift card operation is in progress. | 
| removeGiftCard | function | A callback to remove a gift card from the cart. | 
| shouldDisplayCardBalance | boolean | Whether to display the gift card balance to the user | 
| shouldDisplayCardError | boolean | Whether to display an error message under the card input field. | 
Props data to use when rendering a single gift card component.
Properties
| Name | Type | Description | 
|---|---|---|
| removeGiftCardWithCode | function | Function for removing a gift card associated with the code passed into this talon. | 
Source Code: pwa-studio/packages/peregrine/lib/talons/CartPage/GiftCards/useGiftCards.js
Examples
useGiftCards()
Copied to your clipboardimport React from 'react';import { useGiftCards } from '@magento/peregrine/lib/talons/CartPage/GiftCards';import {GET_CART_GIFT_CARDS_QUERY,GET_GIFT_CARD_BALANCE_QUERY,APPLY_GIFT_CARD_MUTATION,REMOVE_GIFT_CARD_MUTATION} from './myGiftCardQueries';const MyGiftCards = props => {const talonProps = useGiftCards({setIsCartUpdating: props.setIsCartUpdating,mutations: {applyCardMutation: APPLY_GIFT_CARD_MUTATION,removeCardMutation: REMOVE_GIFT_CARD_MUTATION},queries: {appliedCardsQuery: GET_CART_GIFT_CARDS_QUERY,cardBalanceQuery: GET_GIFT_CARD_BALANCE_QUERY}});const {applyGiftCard,checkBalanceData,checkGiftCardBalance,errorLoadingGiftCards,errorRemovingCard,giftCardsData,isLoadingGiftCards,isApplyingCard,isCheckingBalance,isRemovingCard,removeGiftCard,setFormApi,shouldDisplayCardBalance,shouldDisplayCardError} = talonProps;return (// JSX using the props from the talon)}export default MyGiftCards
useGiftCard()
Copied to your clipboardimport React from 'react';import { useGiftCard } from '@magento/peregrine/lib/talons/CartPage/GiftCards/useGiftCard';const MyGiftCard = props => {const { code } = props;const removeGiftCard = code => {// Logic for removing a gift card using its code// This can also be passed in as a prop}const { removeGiftCardWithCode } = useGiftCard({code,removeGiftCard});return (// JSX for rendering a single Gift Card using data from the talon)}export default MyGiftCard


