diff --git a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx index 1163c031ad..b7eb709022 100644 --- a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx +++ b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsList.tsx @@ -61,7 +61,7 @@ const head = [ ]; export const BorrowedPositionsList = () => { - const { user, loading, eModes } = useAppDataContext(); + const { user, loading, eModes, reserves } = useAppDataContext(); const { currentMarketData, currentNetworkConfig } = useProtocolDataContext(); const [sortName, setSortName] = useState(''); const [sortDesc, setSortDesc] = useState(false); @@ -70,6 +70,9 @@ export const BorrowedPositionsList = () => { const showEModeButton = currentMarketData.v3 && Object.keys(eModes).length > 1; const [tooltipOpen, setTooltipOpen] = useState(false); + if (loading || !user) + return Your borrows} head={head.map((c) => c.title)} />; + let borrowPositions = user?.userReservesData.reduce((acc, userReserve) => { if (userReserve.variableBorrows !== '0') { @@ -131,6 +134,12 @@ export const BorrowedPositionsList = () => { true ); + const disableEModeSwitch = + user.isInEmode && + reserves.filter( + (reserve) => reserve.eModeCategoryId === user.userEmodeCategoryId && reserve.borrowingEnabled + ).length < 2; + const RenderHeader: React.FC = () => { return ( @@ -157,9 +166,6 @@ export const BorrowedPositionsList = () => { ); }; - if (loading) - return Your borrows} head={head.map((c) => c.title)} />; - return ( { ))} diff --git a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx index 7eb453b8b9..bdc6702799 100644 --- a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx +++ b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx @@ -20,8 +20,12 @@ import { ListItemWrapper } from '../ListItemWrapper'; import { ListMobileItemWrapper } from '../ListMobileItemWrapper'; import { ListValueColumn } from '../ListValueColumn'; import { ListValueRow } from '../ListValueRow'; +import { BorrowedPositionsListItemWrapperProps } from './BorrowedPositionsListItemWrapper'; -export const BorrowedPositionsListItem = ({ item }: { item: DashboardReserve }) => { +export const BorrowedPositionsListItem = ({ + item, + disableEModeSwitch, +}: BorrowedPositionsListItemWrapperProps) => { const { borrowCap } = useAssetCaps(); const { currentMarket, currentMarketData } = useProtocolDataContext(); const theme = useTheme(); @@ -40,7 +44,8 @@ export const BorrowedPositionsListItem = ({ item }: { item: DashboardReserve }) const disableRepay = !reserve.isActive || reserve.isPaused; const showSwitchButton = !!isFeatureEnabled.debtSwitch(currentMarketData); - const disableSwitch = reserve.isPaused || !reserve.isActive || reserve.symbol == 'stETH'; + const disableSwitch = + reserve.isPaused || !reserve.isActive || reserve.symbol == 'stETH' || disableEModeSwitch; const props: BorrowedPositionsListItemProps = { ...item, diff --git a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItemWrapper.tsx b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItemWrapper.tsx index f2ee85f497..8b53eb8157 100644 --- a/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItemWrapper.tsx +++ b/src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItemWrapper.tsx @@ -6,7 +6,15 @@ import { displayGhoForMintableMarket } from 'src/utils/ghoUtilities'; import { BorrowedPositionsListItem } from './BorrowedPositionsListItem'; import { GhoBorrowedPositionsListItem } from './GhoBorrowedPositionsListItem'; -export const BorrowedPositionsListItemWrapper = ({ item }: { item: DashboardReserve }) => { +export interface BorrowedPositionsListItemWrapperProps { + item: DashboardReserve; + disableEModeSwitch: boolean; +} + +export const BorrowedPositionsListItemWrapper = ({ + item, + disableEModeSwitch, +}: BorrowedPositionsListItemWrapperProps) => { const { currentMarket } = useProtocolDataContext(); return ( @@ -14,7 +22,7 @@ export const BorrowedPositionsListItemWrapper = ({ item }: { item: DashboardRese {displayGhoForMintableMarket({ symbol: item.reserve.symbol, currentMarket }) ? ( ) : ( - + )} );