Skip to content

Commit 648b95c

Browse files
Merge pull request #423 from reown-com/fix/network-images
fix: network images loading
2 parents 6abe83c + 4b1c610 commit 648b95c

File tree

20 files changed

+134
-62
lines changed

20 files changed

+134
-62
lines changed

.changeset/six-dots-punch.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
'@reown/appkit-scaffold-react-native': patch
3+
'@reown/appkit-core-react-native': patch
4+
'@reown/appkit-ui-react-native': patch
5+
'@reown/appkit-auth-ethers-react-native': patch
6+
'@reown/appkit-auth-wagmi-react-native': patch
7+
'@reown/appkit-coinbase-ethers-react-native': patch
8+
'@reown/appkit-coinbase-wagmi-react-native': patch
9+
'@reown/appkit-common-react-native': patch
10+
'@reown/appkit-ethers-react-native': patch
11+
'@reown/appkit-ethers5-react-native': patch
12+
'@reown/appkit-scaffold-utils-react-native': patch
13+
'@reown/appkit-siwe-react-native': patch
14+
'@reown/appkit-wagmi-react-native': patch
15+
'@reown/appkit-wallet-react-native': patch
16+
---
17+
18+
fix: show network images correctly

packages/core/src/utils/AssetUtil.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,17 @@ export const AssetUtil = {
1414
return undefined;
1515
},
1616

17-
getNetworkImage(network?: CaipNetwork) {
18-
if (network?.imageUrl) {
19-
return network?.imageUrl;
17+
getNetworkImage(network?: CaipNetwork, networkImages?: Record<string, string>) {
18+
if (!network) {
19+
return undefined;
2020
}
2121

22-
if (network?.imageId) {
23-
return AssetController.state.networkImages[network.imageId];
22+
if (network.imageUrl) {
23+
return network.imageUrl;
24+
}
25+
26+
if (network.imageId) {
27+
return networkImages?.[network.imageId];
2428
}
2529

2630
return undefined;

packages/scaffold/src/modal/w3m-account-button/index.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
ModalController,
88
AssetUtil,
99
ThemeController,
10-
ApiController
10+
ApiController,
11+
AssetController
1112
} from '@reown/appkit-core-react-native';
1213
import { AccountButton as AccountButtonUI, ThemeProvider } from '@reown/appkit-ui-react-native';
1314

@@ -27,9 +28,10 @@ export function AccountButton({ balance, disabled, style, testID }: AccountButto
2728
profileName
2829
} = useSnapshot(AccountController.state);
2930
const { caipNetwork } = useSnapshot(NetworkController.state);
31+
const { networkImages } = useSnapshot(AssetController.state);
3032
const { themeMode, themeVariables } = useSnapshot(ThemeController.state);
3133

32-
const networkImage = AssetUtil.getNetworkImage(caipNetwork);
34+
const networkImage = AssetUtil.getNetworkImage(caipNetwork, networkImages);
3335
const showBalance = balance === 'show';
3436

3537
return (

packages/scaffold/src/modal/w3m-network-button/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { StyleProp, ViewStyle } from 'react-native';
33
import {
44
AccountController,
55
ApiController,
6+
AssetController,
67
AssetUtil,
78
EventsController,
89
ModalController,
@@ -18,6 +19,7 @@ export interface NetworkButtonProps {
1819

1920
export function NetworkButton({ disabled, style }: NetworkButtonProps) {
2021
const { isConnected } = useSnapshot(AccountController.state);
22+
const { networkImages } = useSnapshot(AssetController.state);
2123
const { caipNetwork } = useSnapshot(NetworkController.state);
2224
const { loading } = useSnapshot(ModalController.state);
2325
const { themeMode, themeVariables } = useSnapshot(ThemeController.state);
@@ -33,7 +35,7 @@ export function NetworkButton({ disabled, style }: NetworkButtonProps) {
3335
return (
3436
<ThemeProvider themeMode={themeMode} themeVariables={themeVariables}>
3537
<NetworkButtonUI
36-
imageSrc={AssetUtil.getNetworkImage(caipNetwork)}
38+
imageSrc={AssetUtil.getNetworkImage(caipNetwork, networkImages)}
3739
imageHeaders={ApiController._getApiHeaders()}
3840
disabled={disabled || loading}
3941
style={style}

packages/scaffold/src/partials/w3m-account-activity/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import { type Transaction, type TransactionImage } from '@reown/appkit-common-react-native';
1414
import {
1515
AccountController,
16+
AssetController,
1617
AssetUtil,
1718
EventsController,
1819
NetworkController,
@@ -33,7 +34,8 @@ export function AccountActivity({ style }: Props) {
3334
const [initialLoad, setInitialLoad] = useState(true);
3435
const { loading, transactions, next } = useSnapshot(TransactionsController.state);
3536
const { caipNetwork } = useSnapshot(NetworkController.state);
36-
const networkImage = AssetUtil.getNetworkImage(caipNetwork);
37+
const { networkImages } = useSnapshot(AssetController.state);
38+
const networkImage = AssetUtil.getNetworkImage(caipNetwork, networkImages);
3739

3840
const handleLoadMore = () => {
3941
TransactionsController.fetchTransactions(AccountController.state.address);

packages/scaffold/src/partials/w3m-account-tokens/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
import { useSnapshot } from 'valtio';
1010
import {
1111
AccountController,
12+
AssetController,
1213
AssetUtil,
1314
NetworkController,
1415
RouterController
@@ -31,7 +32,8 @@ export function AccountTokens({ style }: Props) {
3132
const [refreshing, setRefreshing] = useState(false);
3233
const { tokenBalance } = useSnapshot(AccountController.state);
3334
const { caipNetwork } = useSnapshot(NetworkController.state);
34-
const networkImage = AssetUtil.getNetworkImage(caipNetwork);
35+
const { networkImages } = useSnapshot(AssetController.state);
36+
const networkImage = AssetUtil.getNetworkImage(caipNetwork, networkImages);
3537

3638
const onRefresh = useCallback(async () => {
3739
setRefreshing(true);

packages/scaffold/src/partials/w3m-selector-modal/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
useTheme
1414
} from '@reown/appkit-ui-react-native';
1515
import styles from './styles';
16-
import { AssetUtil, NetworkController } from '@reown/appkit-core-react-native';
16+
import { AssetController, AssetUtil, NetworkController } from '@reown/appkit-core-react-native';
1717

1818
interface SelectorModalProps {
1919
title?: string;
@@ -46,7 +46,8 @@ export function SelectorModal({
4646
}: SelectorModalProps) {
4747
const Theme = useTheme();
4848
const { caipNetwork } = useSnapshot(NetworkController.state);
49-
const networkImage = AssetUtil.getNetworkImage(caipNetwork);
49+
const { networkImages } = useSnapshot(AssetController.state);
50+
const networkImage = AssetUtil.getNetworkImage(caipNetwork, networkImages);
5051

5152
const renderSeparator = () => {
5253
return <View style={{ height: SEPARATOR_HEIGHT }} />;

packages/scaffold/src/views/w3m-account-default-view/index.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import {
1818
type AppKitFrameProvider,
1919
ConstantsUtil,
2020
SwapController,
21-
OnRampController
21+
OnRampController,
22+
AssetController
2223
} from '@reown/appkit-core-react-native';
2324
import {
2425
Avatar,
@@ -52,7 +53,8 @@ export function AccountDefaultView() {
5253
const { connectedSocialProvider } = useSnapshot(ConnectionController.state);
5354
const { features, isOnRampEnabled } = useSnapshot(OptionsController.state);
5455
const { history } = useSnapshot(RouterController.state);
55-
const networkImage = AssetUtil.getNetworkImage(caipNetwork);
56+
const { networkImages } = useSnapshot(AssetController.state);
57+
const networkImage = AssetUtil.getNetworkImage(caipNetwork, networkImages);
5658
const showCopy = OptionsController.isClipboardAvailable();
5759
const isAuth = connectedConnector === 'AUTH';
5860
const showBalance = balance && !isAuth;

packages/scaffold/src/views/w3m-account-view/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import {
1414
AccountController,
1515
ApiController,
16+
AssetController,
1617
AssetUtil,
1718
ModalController,
1819
NetworkController,
@@ -28,6 +29,7 @@ export function AccountView() {
2829
const Theme = useTheme();
2930
const { padding } = useCustomDimensions();
3031
const { caipNetwork } = useSnapshot(NetworkController.state);
32+
const { networkImages } = useSnapshot(AssetController.state);
3133
const { address, profileName, profileImage, preferredAccountType } = useSnapshot(
3234
AccountController.state
3335
);
@@ -74,7 +76,7 @@ export function AccountView() {
7476
]}
7577
>
7678
<NetworkButton
77-
imageSrc={AssetUtil.getNetworkImage(caipNetwork)}
79+
imageSrc={AssetUtil.getNetworkImage(caipNetwork, networkImages)}
7880
imageHeaders={ApiController._getApiHeaders()}
7981
onPress={onNetworkPress}
8082
style={styles.networkIcon}

packages/scaffold/src/views/w3m-network-switch-view/index.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useSnapshot } from 'valtio';
33
import { useEffect, useState } from 'react';
44
import {
55
ApiController,
6+
AssetController,
67
AssetUtil,
78
ConnectionController,
89
ConnectorController,
@@ -21,10 +22,13 @@ import {
2122
} from '@reown/appkit-ui-react-native';
2223
import styles from './styles';
2324

25+
const imageHeaders = ApiController._getApiHeaders();
26+
2427
export function NetworkSwitchView() {
2528
const { data } = useSnapshot(RouterController.state);
2629
const { recentWallets } = useSnapshot(ConnectionController.state);
2730
const { caipNetwork } = useSnapshot(NetworkController.state);
31+
const { networkImages } = useSnapshot(AssetController.state);
2832
const isAuthConnected = ConnectorController.state.connectedConnector === 'AUTH';
2933
const [error, setError] = useState<boolean>(false);
3034
const [showRetry, setShowRetry] = useState<boolean>(false);
@@ -115,8 +119,8 @@ export function NetworkSwitchView() {
115119
<FlexView alignItems="center" padding={['2xl', 's', '4xl', 's']}>
116120
<LoadingHexagon paused={error}>
117121
<NetworkImage
118-
imageSrc={AssetUtil.getNetworkImage(network)}
119-
imageHeaders={ApiController._getApiHeaders()}
122+
imageSrc={AssetUtil.getNetworkImage(network, networkImages)}
123+
imageHeaders={imageHeaders}
120124
size="lg"
121125
/>
122126
{error && (

0 commit comments

Comments
 (0)