From e234ddc0fbdb68da330099baaa61a3e50617ef35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chy=C5=82a?= Date: Mon, 26 Feb 2024 11:58:15 +0100 Subject: [PATCH] Fix showing promotion discount type in order summary (#4689) * Show promotion discount type * Add changeset --- .changeset/real-brooms-attack.md | 5 +++++ .../OrderSummaryCard/OrderSummaryCard.tsx | 9 +++----- .../components/OrderSummaryCard/messages.ts | 5 +++++ .../components/OrderSummaryCard/utils.ts | 22 +++++++++++++++++-- 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 .changeset/real-brooms-attack.md diff --git a/.changeset/real-brooms-attack.md b/.changeset/real-brooms-attack.md new file mode 100644 index 00000000000..40ed6714c16 --- /dev/null +++ b/.changeset/real-brooms-attack.md @@ -0,0 +1,5 @@ +--- +"saleor-dashboard": patch +--- + +Fix showing promotion discount type in order summary diff --git a/src/orders/components/OrderSummaryCard/OrderSummaryCard.tsx b/src/orders/components/OrderSummaryCard/OrderSummaryCard.tsx index 07d6befcc5b..cd4138bcbc8 100644 --- a/src/orders/components/OrderSummaryCard/OrderSummaryCard.tsx +++ b/src/orders/components/OrderSummaryCard/OrderSummaryCard.tsx @@ -2,7 +2,7 @@ import CardTitle from "@dashboard/components/CardTitle"; import Link from "@dashboard/components/Link"; import { giftCardPath } from "@dashboard/giftCards/urls"; -import { OrderDetailsFragment, OrderDiscountType } from "@dashboard/graphql"; +import { OrderDetailsFragment } from "@dashboard/graphql"; import { Card, CardContent } from "@material-ui/core"; import { makeStyles } from "@saleor/macaw-ui"; import React from "react"; @@ -15,6 +15,7 @@ import { SummaryList } from "./SummaryList"; import { extractOrderGiftCardUsedAmount, getDeliveryMethodName, + getDiscountTypeLabel, getTaxTypeText, } from "./utils"; @@ -71,11 +72,7 @@ const OrderSummaryCard: React.FC = ({ order }) => { } - subText={ - discount.type === OrderDiscountType.MANUAL - ? intl.formatMessage(orderSummaryMessages.staffAdded) - : intl.formatMessage(orderSummaryMessages.voucher) - } + subText={intl.formatMessage(getDiscountTypeLabel(discount.type))} money={discount.amount} /> ))} diff --git a/src/orders/components/OrderSummaryCard/messages.ts b/src/orders/components/OrderSummaryCard/messages.ts index 16ad69fc535..9b19263c13d 100644 --- a/src/orders/components/OrderSummaryCard/messages.ts +++ b/src/orders/components/OrderSummaryCard/messages.ts @@ -70,6 +70,11 @@ export const orderSummaryMessages = defineMessages({ defaultMessage: "Voucher", description: "voucher type order discount", }, + promotion: { + id: "TBdxTP", + defaultMessage: "Promotion", + description: "promotion type order discount", + }, total: { id: "zb4eBO", defaultMessage: "Total", diff --git a/src/orders/components/OrderSummaryCard/utils.ts b/src/orders/components/OrderSummaryCard/utils.ts index 7a953a84ce4..477f249fdf9 100644 --- a/src/orders/components/OrderSummaryCard/utils.ts +++ b/src/orders/components/OrderSummaryCard/utils.ts @@ -1,10 +1,14 @@ // @ts-strict-ignore import { subtractMoney } from "@dashboard/components/Money"; -import { GiftCardEventsEnum, OrderDetailsFragment } from "@dashboard/graphql"; +import { + GiftCardEventsEnum, + OrderDetailsFragment, + OrderDiscountType, +} from "@dashboard/graphql"; import { getOrderCharged } from "@dashboard/orders/utils/data"; import { IMoney } from "@dashboard/utils/intl"; import compact from "lodash/compact"; -import { IntlShape } from "react-intl"; +import { IntlShape, MessageDescriptor } from "react-intl"; import { orderSummaryMessages } from "./messages"; @@ -80,3 +84,17 @@ export const getTaxTypeText = ( } return intl.formatMessage(orderSummaryMessages.vatNotIncluded); }; + +export const getDiscountTypeLabel = ( + discountType: OrderDiscountType, +): MessageDescriptor => { + switch (discountType) { + case OrderDiscountType.MANUAL: + return orderSummaryMessages.staffAdded; + case OrderDiscountType.PROMOTION: + case OrderDiscountType.ORDER_PROMOTION: + return orderSummaryMessages.promotion; + default: + return orderSummaryMessages.voucher; + } +};