From 88fdf3db951ec0ce6fb2fa7b1b62f762b37fff93 Mon Sep 17 00:00:00 2001 From: antoncoding Date: Sat, 28 Mar 2026 12:34:26 +0800 Subject: [PATCH] chore: pro view account fix + lint error --- .../components/pro-activities-table.tsx | 18 +++++++++++++-- src/features/markets/markets-view.tsx | 3 +-- src/hooks/useFilteredMarkets.ts | 22 +++++++++---------- src/utils/markets.ts | 2 +- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/features/market-detail/components/pro-activities-table.tsx b/src/features/market-detail/components/pro-activities-table.tsx index 156c3c92..52345de0 100644 --- a/src/features/market-detail/components/pro-activities-table.tsx +++ b/src/features/market-detail/components/pro-activities-table.tsx @@ -90,6 +90,7 @@ const isSameMarketId = (left: string, right: string): boolean => getMarketMapKey const sameAddress = (left: string | undefined, right: string | undefined): boolean => left !== undefined && right !== undefined && left.toLowerCase() === right.toLowerCase(); const isRebalanceLikeKind = (kind: MarketProActivityKind): boolean => kind === 'vaultRebalance' || kind === 'monarchTx'; +const isSimpleMonarchAccountResolvedKind = (kind: MarketProActivityKind): boolean => kind === 'directSupply' || kind === 'directWithdraw'; type ProActivitiesTableProps = { chainId: number; @@ -522,6 +523,18 @@ export function ProActivitiesTable({ chainId, market, onSwitchToBasic }: ProActi return activity.vaultAddress as Address; }; + const getDisplayActorAddress = (activity: (typeof activities)[number]): Address | undefined => { + if (!activity.actorAddress) { + return undefined; + } + + if (!activity.isMonarch || isSimpleMonarchAccountResolvedKind(activity.kind)) { + return activity.actorAddress as Address; + } + + return undefined; + }; + const renderRowFlow = (activity: (typeof activities)[number]): ReactNode => { const rowLoanFlows = getRowLoanFlows(activity); if (rowLoanFlows.length === 0) { @@ -712,6 +725,7 @@ export function ProActivitiesTable({ chainId, market, onSwitchToBasic }: ProActi const activityMeta = activityKindMeta[activity.kind]; const detailRowId = `${activity.id}-detail`; const isExpanded = expandedRows.has(activity.id); + const displayActorAddress = getDisplayActorAddress(activity); const intermediaryAddress = getIntermediaryAddress(activity); return ( @@ -737,9 +751,9 @@ export function ProActivitiesTable({ chainId, market, onSwitchToBasic }: ProActi className="px-4 py-3" onClick={(event) => event.stopPropagation()} > - {!activity.isMonarch && activity.actorAddress ? ( + {displayActorAddress ? ( { diff --git a/src/hooks/useFilteredMarkets.ts b/src/hooks/useFilteredMarkets.ts index 6b766bb2..5dcfb66f 100644 --- a/src/hooks/useFilteredMarkets.ts +++ b/src/hooks/useFilteredMarkets.ts @@ -37,10 +37,10 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { return []; } - let markets = showUnwhitelistedMarkets ? allMarkets : whitelistedMarkets; - if (markets.length === 0) return []; + let filteredMarkets = showUnwhitelistedMarkets ? allMarkets : whitelistedMarkets; + if (filteredMarkets.length === 0) return []; - markets = filterMarkets(markets, { + filteredMarkets = filterMarkets(filteredMarkets, { selectedNetwork: filters.selectedNetwork, showUnknownTokens: preferences.includeUnknownTokens, showUnknownOracle: preferences.showUnknownOracle, @@ -69,7 +69,7 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { if (preferences.trustedVaultsOnly) { const trustedVaultKeys = new Set(trustedVaults.map((vault) => getVaultKey(vault.address, vault.chainId))); - markets = markets.filter((market) => { + filteredMarkets = filteredMarkets.filter((market) => { if (!market.supplyingVaults?.length) return false; const chainId = market.morphoBlue.chain.id; return market.supplyingVaults.some((vault) => { @@ -81,7 +81,7 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { // Official trending filter (backend-computed) if (filters.trendingMode && officialTrendingKeys.size > 0) { - markets = markets.filter((market) => { + filteredMarkets = filteredMarkets.filter((market) => { const key = getMetricsKey(market.morphoBlue.chain.id, market.uniqueKey); return officialTrendingKeys.has(key); }); @@ -89,7 +89,7 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { // Custom tag filter (user-defined) if (filters.customTagMode && customTagKeys.size > 0) { - markets = markets.filter((market) => { + filteredMarkets = filteredMarkets.filter((market) => { const key = getMetricsKey(market.morphoBlue.chain.id, market.uniqueKey); return customTagKeys.has(key); }); @@ -98,17 +98,17 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { // Starred markets filter if (filters.starredOnly && preferences.starredMarkets.length > 0) { const starredSet = new Set(preferences.starredMarkets); - markets = markets.filter((market) => starredSet.has(market.uniqueKey)); + filteredMarkets = filteredMarkets.filter((market) => starredSet.has(market.uniqueKey)); } if (preferences.sortColumn === SortColumn.Starred) { - return sortMarkets(markets, createStarredSort(preferences.starredMarkets), 1); + return sortMarkets(filteredMarkets, createStarredSort(preferences.starredMarkets), 1); } if (preferences.sortColumn === SortColumn.TrustedBy) { const trustedVaultKeys = new Set(trustedVaults.map((vault) => getVaultKey(vault.address, vault.chainId))); return sortMarkets( - markets, + filteredMarkets, (a, b) => { const aHasTrusted = a.supplyingVaults?.some((v) => v.address && trustedVaultKeys.has(getVaultKey(v.address, a.morphoBlue.chain.id))) ?? false; @@ -144,10 +144,10 @@ export const useFilteredMarkets = (): UseFilteredMarketsResult => { const propertyPath = sortPropertyMap[preferences.sortColumn]; if (propertyPath) { - return sortMarkets(markets, createPropertySort(propertyPath), preferences.sortDirection as 1 | -1); + return sortMarkets(filteredMarkets, createPropertySort(propertyPath), preferences.sortDirection as 1 | -1); } - return markets; + return filteredMarkets; }, [ allMarkets, whitelistedMarkets, diff --git a/src/utils/markets.ts b/src/utils/markets.ts index 3ac1c050..002bfcf5 100644 --- a/src/utils/markets.ts +++ b/src/utils/markets.ts @@ -75,7 +75,7 @@ export const blacklistedMarkets = [ '0x8d18658cd2688b702222c11467133c1c2237bd058ba2467e47bc360067ebe038', '0xa9d6a0caea685bb0099ba2d52a58fb7ed33a6447616c25df93bdb8330337a9c3', '0x394494c539655eb489089b33eba5119ff7e322646cac3fa3e817814164bab094', - '0x50e26162f35945381884ea34bf5c1d5d9f15c9305febbc1f890c916963ba0f2b' + '0x50e26162f35945381884ea34bf5c1d5d9f15c9305febbc1f890c916963ba0f2b', ]; // Market specially whitelisted by Monarch, lowercase