forked from cerc-io/laconic-wallet
* Send networks data to dapp * Reflect switching tabs in dapp dropdown * Fix current network name not showing in Dapp * Modify variable names * Modify method and variable names * Modify networks type * Use selectedNetwork state and networkId * Fix networks context states * Add separate file for network methods
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import React, { useState } from 'react';
|
|
import { View } from 'react-native';
|
|
import { List } from 'react-native-paper';
|
|
|
|
import { NetworkDropdownProps, NetworksDataState } from '../types';
|
|
import styles from '../styles/stylesheet';
|
|
import { useNetworks } from '../context/NetworksContext';
|
|
|
|
const NetworkDropdown = ({ updateNetwork }: NetworkDropdownProps) => {
|
|
const { networksData, selectedNetwork, setSelectedNetwork } = useNetworks();
|
|
|
|
const [expanded, setExpanded] = useState<boolean>(false);
|
|
|
|
const handleNetworkPress = (networksData: NetworksDataState) => {
|
|
updateNetwork(networksData);
|
|
setSelectedNetwork(networksData);
|
|
setExpanded(false);
|
|
};
|
|
|
|
return (
|
|
<View style={styles.networkDropdown}>
|
|
<List.Accordion
|
|
title={selectedNetwork.networkName}
|
|
expanded={expanded}
|
|
onPress={() => setExpanded(!expanded)}>
|
|
{networksData.map(networkData => (
|
|
<List.Item
|
|
key={networkData.chainId}
|
|
title={networkData.networkName}
|
|
onPress={() => handleNetworkPress(networkData)}
|
|
/>
|
|
))}
|
|
</List.Accordion>
|
|
</View>
|
|
);
|
|
};
|
|
|
|
export { NetworkDropdown };
|