diff --git a/src/components/transactions/Borrow/BorrowModalContent.tsx b/src/components/transactions/Borrow/BorrowModalContent.tsx index 42b1d0f153..ca40c7107a 100644 --- a/src/components/transactions/Borrow/BorrowModalContent.tsx +++ b/src/components/transactions/Borrow/BorrowModalContent.tsx @@ -16,7 +16,10 @@ import { useModalContext } from 'src/hooks/useModal'; import { ERC20TokenType } from 'src/libs/web3-data-provider/Web3Provider'; import { useRootStore } from 'src/store/root'; import { GENERAL } from 'src/utils/events'; -import { getMaxAmountAvailableToBorrow } from 'src/utils/getMaxAmountAvailableToBorrow'; +import { + assetCanBeBorrowedByUser, + getMaxAmountAvailableToBorrow, +} from 'src/utils/getMaxAmountAvailableToBorrow'; import { roundToTokenDecimals } from 'src/utils/utils'; import { CapType } from '../../caps/helper'; @@ -100,7 +103,7 @@ export const BorrowModalContent = ({ let blockingError: ErrorType | undefined = undefined; if (valueToBigNumber(amount).gt(poolReserve.formattedAvailableLiquidity)) { blockingError = ErrorType.NOT_ENOUGH_LIQUIDITY; - } else if (!poolReserve.borrowingEnabled) { + } else if (!assetCanBeBorrowedByUser(poolReserve, user)) { blockingError = ErrorType.BORROWING_NOT_AVAILABLE; } diff --git a/src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsList.tsx b/src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsList.tsx index 7788438c51..0fcd634176 100644 --- a/src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsList.tsx +++ b/src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsList.tsx @@ -130,7 +130,7 @@ export const BorrowAssetsList = () => { totalBorrows: reserve.totalDebt, availableBorrows, availableBorrowsInUSD, - variableBorrowRate: reserve.borrowingEnabled ? Number(reserve.variableBorrowAPY) : -1, + variableBorrowRate: Number(reserve.variableBorrowAPY), iconSymbol: reserve.iconSymbol, ...(reserve.isWrappedBaseAsset ? fetchIconSymbolAndName({ diff --git a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx index 188c4d9371..1767f06f51 100644 --- a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx +++ b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx @@ -4,10 +4,12 @@ import { Trans } from '@lingui/macro'; import { Box, Button, useMediaQuery, useTheme } from '@mui/material'; import { IncentivesCard } from 'src/components/incentives/IncentivesCard'; import { Row } from 'src/components/primitives/Row'; +import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider'; import { useAssetCaps } from 'src/hooks/useAssetCaps'; import { useModalContext } from 'src/hooks/useModal'; import { useRootStore } from 'src/store/root'; import { DashboardReserve } from 'src/utils/dashboardSortUtils'; +import { assetCanBeBorrowedByUser } from 'src/utils/getMaxAmountAvailableToBorrow'; import { displayGhoForMintableMarket } from 'src/utils/ghoUtilities'; import { isFeatureEnabled } from 'src/utils/marketsAndNetworksConfig'; import { showExternalIncentivesTooltip } from 'src/utils/utils'; @@ -36,15 +38,11 @@ export const BorrowedPositionsListItem = ({ const theme = useTheme(); const downToXSM = useMediaQuery(theme.breakpoints.down('xsm')); const { openBorrow, openRepay, openDebtSwitch } = useModalContext(); + const { user } = useAppDataContext(); const reserve = item.reserve; - const disableBorrow = - !reserve.isActive || - !reserve.borrowingEnabled || - reserve.isFrozen || - reserve.isPaused || - borrowCap.isMaxed; + const disableBorrow = !assetCanBeBorrowedByUser(reserve, user) || borrowCap.isMaxed; const disableRepay = !reserve.isActive || reserve.isPaused; diff --git a/src/modules/markets/MarketAssetsListItem.tsx b/src/modules/markets/MarketAssetsListItem.tsx index fc1e626acd..f4fce15f03 100644 --- a/src/modules/markets/MarketAssetsListItem.tsx +++ b/src/modules/markets/MarketAssetsListItem.tsx @@ -163,6 +163,7 @@ export const MarketAssetsListItem = ({ ...reserve }: ReserveWithProtocolIncentiv /> {reserve.borrowInfo?.borrowingState === 'DISABLED' && !reserve.isFrozen && + !reserve.eModeInfo?.some((eMode) => eMode.canBeBorrowed) && reserve.borrowInfo.total.amount.value !== '0' && } diff --git a/src/modules/markets/MarketAssetsListMobileItem.tsx b/src/modules/markets/MarketAssetsListMobileItem.tsx index 77822f5f95..41e5325b7f 100644 --- a/src/modules/markets/MarketAssetsListMobileItem.tsx +++ b/src/modules/markets/MarketAssetsListMobileItem.tsx @@ -160,6 +160,7 @@ export const MarketAssetsListMobileItem = ({ ...reserve }: ReserveWithProtocolIn /> {reserve.borrowInfo?.borrowingState === 'DISABLED' && !reserve.isFrozen && + !reserve.eModeInfo?.some((eMode) => eMode.canBeBorrowed) && reserve.borrowInfo.total.amount.value !== '0' && }