Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor/token cell token list item #30222

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

gambinish
Copy link
Contributor

@gambinish gambinish commented Feb 8, 2025

Description

Open in GitHub Codespaces

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Copy link
Contributor

github-actions bot commented Feb 8, 2025

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

Comment on lines +36 to +111
const useTokenDisplayInfo = ({
token,
}: UseTokenDisplayInfoProps): TokenDisplayInfo => {
const t = useI18nContext();
const isEvm = useSelector(getMultichainIsEvm);
const tokenList = useSelector(getTokenList);
const erc20TokensByChain = useSelector(selectERC20TokensByChain);
const shouldShowFiat = useShouldShowFiat(); // TODO: break out currency formatter into a useFormattedFiatHook (chain agnostic)
const currentCurrency = useSelector(getCurrentCurrency);
const locale = useSelector(getIntlLocale);
const tokenChainImage = getImageForChainId(token?.chainId);

const secondaryThreshold = 0.01;

// Format for fiat balance with currency style
const secondary = shouldShowFiat
? formatWithThreshold(token.tokenFiatAmount, secondaryThreshold, locale, {
style: 'currency',
currency: currentCurrency.toUpperCase(),
})
: undefined;

const primary = formatAmount(
locale,
new BigNumber(Number(token.string) || '0', 10),
);

const isEvmMainnet =
token.chainId && isEvm ? isChainIdMainnet(token.chainId) : false;

const isStakeable = isEvmMainnet && isEvm && token.isNative;

if (isEvm) {
const tokenData = Object.values(tokenList).find(
(tokenToFind) =>
isEqualCaseInsensitive(tokenToFind.symbol, token.symbol) &&
isEqualCaseInsensitive(tokenToFind.address, token.address),
);

const title =
tokenData?.name ||
(token.chainId === '0x1' && token.symbol === 'ETH'
? 'Ethereum'
: token.chainId &&
erc20TokensByChain?.[token.chainId]?.data?.[
token.address.toLowerCase()
]?.name) ||
token.symbol;

const tokenImage =
tokenData?.iconUrl ||
(token.chainId &&
erc20TokensByChain?.[token.chainId]?.data?.[token.address.toLowerCase()]
?.iconUrl) ||
token.image;

return {
title,
tokenImage,
primary,
secondary,
isStakeable,
tokenChainImage,
};
} else {
// TODO non-evm assets
return {
title: '',
tokenImage: '',
primary,
secondary,
isStakeable,
tokenChainImage,
};
}
};
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This desperately needs to be simplified

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants