From af428416eaffa97fc896fec32ee2d3252c836bfa Mon Sep 17 00:00:00 2001 From: nflnkr Date: Tue, 14 Mar 2023 15:47:05 +0300 Subject: [PATCH] add coupon state feedback --- src/kitUI/Cart/Cart.tsx | 43 +++++++++++++++++++++-------------------- src/kitUI/Cart/calc.ts | 2 ++ src/model/cart.ts | 1 + 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/kitUI/Cart/Cart.tsx b/src/kitUI/Cart/Cart.tsx index 5d29002..4abf479 100644 --- a/src/kitUI/Cart/Cart.tsx +++ b/src/kitUI/Cart/Cart.tsx @@ -23,7 +23,6 @@ export default function Cart({ selectedTariffs }: Props) { const [couponField, setCouponField] = useState(""); const [errorMessage, setErrorMessage] = useState(null); const [isNonCommercial, setIsNonCommercial] = useState(false); - // const [coupon, setCoupon] = useState(); const cartRows = cartTotal?.items.map(cartItemTotal => { const service = cartItemTotal.tariff.privilege.serviceKey; @@ -126,6 +125,22 @@ export default function Cart({ selectedTariffs }: Props) { gap: "20px", }} > + setIsNonCommercial(checked)} + control={} + label="НКО" + sx={{ + color: theme.palette.secondary.main, + }} + /> - {/* */} - setIsNonCommercial(checked)} - control={} - label="НКО" - sx={{ - color: theme.palette.secondary.main, - }} - /> + {cartTotal?.couponState && ( + cartTotal.couponState === "applied" ? + Купон применен! + : + Подходящий купон не найден! + )} diff --git a/src/kitUI/Cart/calc.ts b/src/kitUI/Cart/calc.ts index 0a62624..160cf6f 100644 --- a/src/kitUI/Cart/calc.ts +++ b/src/kitUI/Cart/calc.ts @@ -45,6 +45,7 @@ export function calcCartData( dwarfener: null, }, envolvedCartDiscounts: [], + couponState: coupon ? "not found" : null, }; // layer 0 @@ -87,6 +88,7 @@ export function calcCartData( cartItemTotal.totalPrice *= product.factor; cartItemTotal.envolvedDiscounts.push(couponDiscount); + cartTotal.couponState = "applied"; privilegesAffectedByCoupon.push(product.privilegeId); }); diff --git a/src/model/cart.ts b/src/model/cart.ts index 9c10e4a..dbe4975 100644 --- a/src/model/cart.ts +++ b/src/model/cart.ts @@ -140,4 +140,5 @@ export interface CartTotal { discountsByService: ServiceToDiscountMap; /** Учтенные скидки типов userType, cartPurchasesAmount, totalPurchasesAmount */ envolvedCartDiscounts: (UserTypeDiscount | CartPurchasesAmountDiscount | PurchasesAmountDiscount)[]; + couponState: "applied" | "not found" | null; } \ No newline at end of file