PromotionsDetails.tsx 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. "use client";
  2. import { CartDetail } from "@/types/cart/type";
  3. // 金额明细
  4. export default function PromotionsDetails({cartData}:{
  5. cartData: CartDetail
  6. }) {
  7. let title = "Insurance for Lost";
  8. if(cartData.shippingInsuranceType === "percentage") {
  9. title = `Insurance for Lost (${cartData.shippingInsuranceValue}%)`;
  10. }
  11. return (
  12. <div className="w-full box-border">
  13. <ul className="w-full">
  14. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  15. <span>Subtotal</span>
  16. <span>{cartData.formattedSubtotal}</span>
  17. </li>
  18. {cartData.shippingAmount !== 0 &&
  19. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  20. <span>Shipping Method</span>
  21. <span>{cartData.formattedShippingAmount}</span>
  22. </li>
  23. }
  24. {cartData.earnableRewardPoints > 0 &&
  25. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  26. <span>You Earn</span>
  27. <span>{cartData.earnableRewardPoints} Reward Points</span>
  28. </li>
  29. }
  30. {cartData.shippingInsuranceAmount !== 0 &&
  31. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  32. <span>{title}</span>
  33. <span>{cartData.formattedShippingInsuranceAmount}</span>
  34. </li>
  35. }
  36. {cartData.vipPlusAmount !== 0 &&
  37. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  38. <span>Vip Plus Fee</span>
  39. <span>{cartData.formattedVipPlusAmount}</span>
  40. </li>
  41. }
  42. {cartData.rewardPointsAmount !== 0 &&
  43. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  44. <span>You Redeem ({cartData.rewardPointsUsed} Reward Points)</span>
  45. <span className="flex items-center flex-none h-6 bg-ly-gold px-2 text-ly-14">-{cartData.formattedRewardPointsAmount}</span>
  46. </li>
  47. }
  48. {cartData.discountAmount !== 0 &&
  49. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  50. <span>Coupon</span>
  51. <span className="flex items-center flex-none h-6 bg-ly-gold px-2 text-ly-14">-{cartData.formattedDiscountAmount}</span>
  52. </li>
  53. }
  54. {cartData.vipDiscountAmount !== 0 &&
  55. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  56. <span>Plus</span>
  57. <span className="flex items-center flex-none h-6 bg-ly-gold px-2 text-ly-14">-{cartData.formattedVipDiscountAmount}</span>
  58. </li>
  59. }
  60. {cartData.giftcardAmount !== 0 &&
  61. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  62. <span>Gift Card</span>
  63. <span className="flex items-center flex-none h-6 bg-ly-gold px-2 text-ly-14">-{cartData.formattedGiftcardAmount}</span>
  64. </li>
  65. }
  66. <li className="flex justify-between items-center text-ly-12 mt-4 first:mt-0">
  67. <span>Grand Total</span>
  68. <span>{cartData.formattedGrandTotal}</span>
  69. </li>
  70. </ul>
  71. </div>
  72. );
  73. }