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' && }