profile refactor

This commit is contained in:
2026-06-29 19:42:07 +03:00
parent 3020d6b334
commit a5737e12e6
2 changed files with 16 additions and 6 deletions

View File

@@ -95,8 +95,9 @@ export interface OrgAmountRaw {
raw: string
formatted: string
decimals: number
usd_price: string
usd_value: string
// null when pricing is unavailable (e.g. an upstream provider error).
usd_price: string | null
usd_value: string | null
}
export interface OrgWalletBalance {
@@ -107,13 +108,14 @@ export interface OrgWalletBalance {
native_symbol: string
native: OrgAmountRaw
tokens: Record<string, OrgAmountRaw>
total_usd: string
// null when the wallet's balance could not be fetched (see `error`).
total_usd: string | null
error: string | null
}
export interface OrgBalancesResponse {
items: OrgWalletBalance[]
total_usd: string
total_usd: string | null
has_errors: boolean
}

View File

@@ -1,5 +1,6 @@
import { useWalletBalance, usePortfolio, CHAINS } from '@features/wallet'
import type { Chain, FormattedAmount } from '@features/wallet'
import { useMe } from '@features/auth'
import { getCoinIcon } from '@shared/assets/coins'
import { truncateDecimals } from '@shared/lib/utils/truncateDecimals'
import { TOKENS, type Token } from './tokens'
@@ -95,6 +96,13 @@ export function useChainTokenRows(chain: Chain) {
export function useAllWalletTokenRows() {
const { data, isLoading } = usePortfolio()
const { data: me } = useMe()
// Legal-entity portfolios return a fixed catalog of supported tokens that are
// usually all zero for a fresh account. Filtering out zero balances would
// leave this aggregate view blank, so show every wallet/token (matching the
// per-chain pages). Individuals keep the non-zero-only view to avoid clutter.
const showAll = me?.account_type === 'legal_entity'
if (!data) return { rows: [] as Token[], isLoading }
@@ -106,12 +114,12 @@ export function useAllWalletTokenRows() {
const chainRows: Token[] = []
if (chainData.native && hasBalance(chainData.native)) {
if (chainData.native && (showAll || hasBalance(chainData.native))) {
chainRows.push(nativeRowFor(chain, chainData.native))
}
for (const [symbol, amount] of Object.entries(chainData.tokens ?? {})) {
if (!hasBalance(amount)) continue
if (!showAll && !hasBalance(amount)) continue
chainRows.push(tokenRowFor(chain, symbol, amount))
}