diff --git a/src/App.tsx b/src/App.tsx
index 5b8d70c..d08f201 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -28,6 +28,7 @@ import { EIP155_SIGNING_METHODS } from './utils/wallet-connect/EIP155Data';
import { getSignParamsMessage } from './utils/wallet-connect/helpers';
import ApproveTransaction from './screens/ApproveTransaction';
import AddNetwork from './screens/AddNetwork';
+import EditNetwork from './screens/EditNetwork';
import { COSMOS, EIP155 } from './utils/constants';
import { useNetworks } from './context/NetworksContext';
import { NETWORK_METHODS } from './utils/wallet-connect/common-data';
@@ -281,6 +282,13 @@ const App = (): React.JSX.Element => {
title: 'Add Network',
}}
/>
+
{
+
+ {
+ navigation.navigate('EditNetwork', {
+ selectedNetwork: selectedNetwork!,
+ });
+ }}>
+
+ Edit Network
+
+
+
+
{!selectedNetwork!.isDefault && (
void;
networksData: NetworksDataState[];
setNetworksData: React.Dispatch>;
networkType: string;
@@ -16,8 +14,6 @@ const NetworksContext = createContext<{
React.SetStateAction
>;
}>({
- currentIndex: 0,
- setCurrentIndex: () => {},
networksData: [],
setNetworksData: () => {},
networkType: '',
@@ -33,7 +29,6 @@ const useNetworks = () => {
const NetworksProvider = ({ children }: { children: any }) => {
const [networksData, setNetworksData] = useState([]);
- const [currentIndex, setCurrentIndex] = useState(0);
const [networkType, setNetworkType] = useState(EIP155);
const [selectedNetwork, setSelectedNetwork] = useState();
@@ -50,14 +45,22 @@ const NetworksProvider = ({ children }: { children: any }) => {
setSelectedNetwork(retrievedNewNetworks[0]);
};
- fetchData();
- }, []);
+ if (networksData.length === 0) {
+ fetchData();
+ }
+ }, [networksData]);
+
+ useEffect(() => {
+ setSelectedNetwork(prevSelectedNetwork => {
+ return networksData.find(
+ networkData => networkData.networkId === prevSelectedNetwork?.networkId,
+ );
+ });
+ }, [networksData]);
return (
{
const { setNetworksData } = useNetworks();
const [namespace, setNamespace] = useState(EIP155);
+ const [isLoading, setIsLoading] = useState(false);
const networksFormDataSchema =
namespace === EIP155 ? ethNetworkDataSchema : cosmosNetworkDataSchema;
@@ -114,6 +118,7 @@ const AddNetwork = () => {
const submit = useCallback(
async (data: z.infer) => {
+ setIsLoading(true);
const newNetworkData = {
...data,
namespace,
@@ -176,6 +181,7 @@ const AddNetwork = () => {
),
]);
+ setIsLoading(false);
navigation.navigate('Laconic');
},
[navigation, namespace, setNetworksData],
@@ -358,8 +364,12 @@ const AddNetwork = () => {
/>
>
)}
-