+ {switch leftIcon {
+ | CustomIcon(element) => element
+ | _ => React.null
+ }}
String.length <= endValue}>
{displayValue->React.string}
diff --git a/src/screens/Transaction/Order/OrderRefundForm.res b/src/screens/Transaction/Order/OrderRefundForm.res
index 94d9c11757..540695aae0 100644
--- a/src/screens/Transaction/Order/OrderRefundForm.res
+++ b/src/screens/Transaction/Order/OrderRefundForm.res
@@ -10,7 +10,7 @@ let make = (
~setShowModal,
~requestedRefundAmount,
~amountRefunded,
- ~amoutAvailableToRefund,
+ ~amountAvailableToRefund,
~refetch,
) => {
let getURL = useGetURL()
@@ -120,10 +120,10 @@ let make = (
switch amountValue->Option.flatMap(obj => obj->JSON.Decode.float) {
| Some(floatVal) =>
let enteredAmountInMinorUnits = Math.round(floatVal *. conversionFactor)
- let remainingAmountInMinorUnits = Math.round(amoutAvailableToRefund *. conversionFactor)
+ let remainingAmountInMinorUnits = Math.round(amountAvailableToRefund *. conversionFactor)
if enteredAmountInMinorUnits > remainingAmountInMinorUnits {
let formatted_amount = Float.toFixedWithPrecision(
- amoutAvailableToRefund,
+ amountAvailableToRefund,
~digits=precisionDigits,
)
Dict.set(
diff --git a/src/screens/Transaction/Order/ShowOrder.res b/src/screens/Transaction/Order/ShowOrder.res
index 8124e4124e..a7d2620765 100644
--- a/src/screens/Transaction/Order/ShowOrder.res
+++ b/src/screens/Transaction/Order/ShowOrder.res
@@ -414,27 +414,38 @@ module Disputes = {
module OrderActions = {
@react.component
let make = (~orderData, ~refetch, ~showModal, ~setShowModal) => {
- let (amoutAvailableToRefund, setAmoutAvailableToRefund) = React.useState(_ => 0.0)
+ let (amountAvailableToRefund, setAmountAvailableToRefund) = React.useState(_ => 0.0)
let refundData = orderData.refunds
+ let disputeData = orderData.disputes
let conversionFactor = CurrencyUtils.getCurrencyConversionFactor(orderData.currency)
-
let amountRefunded = ref(0.0)
let requestedRefundAmount = ref(0.0)
+ let disputeAmount = ref(0.0)
+
let _ = refundData->Array.map(ele => {
- if ele.status === "pending" {
+ let refundStatus = ele.status->HSwitchOrderUtils.refundStatusVariantMapper
+ if refundStatus === Pending {
requestedRefundAmount := requestedRefundAmount.contents +. ele.amount
- } else if ele.status === "succeeded" {
+ } else if refundStatus === Success {
amountRefunded := amountRefunded.contents +. ele.amount
}
})
+
+ let _ = disputeData->Array.map(ele => {
+ let disputeStatus = ele.dispute_status->DisputesUtils.disputeStatusVariantMapper
+ if disputeStatus === DisputeLost {
+ disputeAmount := disputeAmount.contents +. ele.amount->Float.fromString->Option.getOr(0.0)
+ }
+ })
+
React.useEffect(_ => {
- setAmoutAvailableToRefund(_ =>
+ let amountToBeRefunded =
orderData.amount_captured /. conversionFactor -.
amountRefunded.contents /. conversionFactor -.
+ disputeAmount.contents /. conversionFactor -.
requestedRefundAmount.contents /. conversionFactor
- )
-
+ setAmountAvailableToRefund(_ => amountToBeRefunded > 0.0 ? amountToBeRefunded : 0.0)
None
}, [orderData])
@@ -451,7 +462,7 @@ module OrderActions = {
setShowModal
requestedRefundAmount
amountRefunded
- amoutAvailableToRefund
+ amountAvailableToRefund
refetch
/>
diff --git a/tailwind.config.js b/tailwind.config.js
index c37dce937a..8e03f9bfd7 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -475,10 +475,13 @@ module.exports = {
600: "#9E5400",
},
nd_yellow: {
+ 50: "#FEFCE8",
100: "#FFFBEE",
200: "#5E4200",
300: "#FFDF20",
+ 500: "#EFB100",
600: "#D08700",
+ 700: "#A65F00",
800: "#998335",
},
nd_purple: {