diff --git a/src/App.tsx b/src/App.tsx index ece322fc78..a1ff35bee4 100755 --- a/src/App.tsx +++ b/src/App.tsx @@ -247,6 +247,7 @@ function App() { } /> } /> } /> + } /> } /> } /> diff --git a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx index 8a59ddc875..5b870534d3 100644 --- a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx +++ b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx @@ -62,14 +62,18 @@ export const CreateOrRepayLoan = ({ const [paymentAmount, setPaymentAmount] = useState(new DecimalBigNumber("0")); const [collateralAmount, setCollateralAmount] = useState(new DecimalBigNumber("0")); const { data: collateralBalance } = useBalance({ [networks.MAINNET]: collateralAddress || "" })[networks.MAINNET]; + const { data: debtBalance } = useBalance({ [networks.MAINNET]: debtAddress || "" })[networks.MAINNET]; const collateralValue = Number(loanToCollateral) * Number(collateralBalance || 0); - const maxYouCanBorrow = Math.min(Number(capacity), collateralValue); const loanPayable = new DecimalBigNumber( loan?.principal.add(loan?.interestDue || BigNumber.from("0")) || BigNumber.from("0"), 18, ); + + const maxYouCanBorrow = loan + ? Math.min(Number(loanPayable), Number(debtBalance)) + : Math.min(Number(capacity), collateralValue); const interestRepaid = loan?.collateral.isZero() || false; //if collateral minus principal is greater than interest... then calculate on collateral amount. const daiCard = ( @@ -124,7 +128,7 @@ export const CreateOrRepayLoan = ({ Max you Can {loan ? "Repay" : "Borrow"} - {formatNumber(loan ? Number(loanPayable.toString()) : maxYouCanBorrow, 2)} DAI + {formatNumber(maxYouCanBorrow, 2)} DAI @@ -197,7 +201,11 @@ export const CreateOrRepayLoan = ({ approve Olympus DAO to use your {loan ? "DAI" : "gOHM"} for borrowing. } - spendAmount={new DecimalBigNumber(collateralAmount.toString(), 18)} + spendAmount={ + loan + ? new DecimalBigNumber(paymentAmount.toString(), 18) + : new DecimalBigNumber(collateralAmount.toString(), 18) + } > { @@ -233,9 +241,7 @@ export const CreateOrRepayLoan = ({ ); }} disabled={ - (loan - ? Number(paymentAmount) > Number(loanPayable) - : Number(paymentAmount.toString()) > maxYouCanBorrow) || + Number(paymentAmount.toString()) > maxYouCanBorrow || Number(paymentAmount.toString()) === 0 || createLoan.isLoading || repayLoan.isLoading @@ -246,6 +252,8 @@ export const CreateOrRepayLoan = ({ {loan ? Number(paymentAmount) > Number(loanPayable) ? `Payback Amount exceeds Loan` + : Number(paymentAmount.toString()) > Number(maxYouCanBorrow) + ? `Insufficient Funds for Repayment` : `Repay Loan` : Number(paymentAmount.toString()) > maxYouCanBorrow ? `Amount requested exceeds capacity` diff --git a/src/views/Range/RangeChart.tsx b/src/views/Range/RangeChart.tsx index 6d68233b39..2b563e677d 100644 --- a/src/views/Range/RangeChart.tsx +++ b/src/views/Range/RangeChart.tsx @@ -1,4 +1,4 @@ -import { Box, CircularProgress } from "@mui/material"; +import { Box, CircularProgress, Typography } from "@mui/material"; import { styled, useTheme } from "@mui/material/styles"; import { DataRow, Paper } from "@olympusdao/component-library"; import { @@ -124,34 +124,43 @@ const RangeChart = (props: { return ( - + + Price + + {label === "now" && ( <> + + Lower Range + + + Upper Range + )}