Skip to content

Commit

Permalink
chore(suite-native): refactor getCryptoIconUrl to separate function
Browse files Browse the repository at this point in the history
  • Loading branch information
jbazant authored and vytick committed Feb 5, 2025
1 parent e98aef6 commit 7de98c0
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 18 deletions.
26 changes: 8 additions & 18 deletions suite-native/icons/src/CryptoIcon.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import { useMemo } from 'react';

import { Image } from 'expo-image';

import { CryptoIconName, cryptoIcons, genericTokenIcon } from '@suite-common/icons';
import { NetworkSymbol, getCoingeckoId } from '@suite-common/wallet-config';
import { getContractAddressForNetworkSymbol } from '@suite-common/wallet-utils';
import { getAssetLogoUrl } from '@trezor/asset-utils';
import { genericTokenIcon } from '@suite-common/icons';
import { NetworkSymbol } from '@suite-common/wallet-config';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

import { getCryptoIconUrl } from './utils';

export interface CryptoIconProps {
symbol: NetworkSymbol;
contractAddress?: string;
Expand Down Expand Up @@ -35,20 +35,10 @@ export const CryptoIcon = ({ symbol, contractAddress, size = 'small' }: CryptoIc
const { applyStyle } = useNativeStyles();
const sizeNumber = typeof size === 'number' ? size : cryptoIconSizes[size];

const sourceUrl = useMemo(() => {
const coingeckoId = getCoingeckoId(symbol);
let url = cryptoIcons[symbol.toLowerCase() as CryptoIconName];
if (coingeckoId && contractAddress) {
const formattedAddress = getContractAddressForNetworkSymbol(symbol, contractAddress);
url = getAssetLogoUrl({
coingeckoId,
contractAddress: formattedAddress,
quality: '@2x',
});
}

return url;
}, [contractAddress, symbol]);
const sourceUrl = useMemo(
() => getCryptoIconUrl(symbol, contractAddress),
[contractAddress, symbol],
);

return (
<Image
Expand Down
1 change: 1 addition & 0 deletions suite-native/icons/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ export * from './CryptoIcon';
export * from './CryptoIconWithPercentage';
export * from './DeviceModelIcon';
export * from './PizzaIcon';
export * from './utils';
20 changes: 20 additions & 0 deletions suite-native/icons/src/utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { CryptoIconName, cryptoIcons } from '@suite-common/icons';
import { NetworkSymbol, getCoingeckoId } from '@suite-common/wallet-config';
import { getContractAddressForNetworkSymbol } from '@suite-common/wallet-utils';
import { getAssetLogoUrl } from '@trezor/asset-utils';

export const getCryptoIconUrl = (symbol: NetworkSymbol, contractAddress?: string) => {
const coingeckoId = getCoingeckoId(symbol);
let url = cryptoIcons[symbol.toLowerCase() as CryptoIconName];

if (coingeckoId && contractAddress) {
const formattedAddress = getContractAddressForNetworkSymbol(symbol, contractAddress);
url = getAssetLogoUrl({
coingeckoId,
contractAddress: formattedAddress,
quality: '@2x',
});
}

return url;
};

0 comments on commit 7de98c0

Please sign in to comment.