mirror of
				https://github.com/Instadapp/assembly.git
				synced 2024-07-29 22:37:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { useWeb3 } from "@instadapp/vue-web3";
 | |
| import { injected } from "../connectors";
 | |
| import { onMounted, ref, watch } from "@nuxtjs/composition-api";
 | |
| import { SafeAppConnector } from "@gnosis.pm/safe-apps-web3-react";
 | |
| import { Network, useNetwork } from "./useNetwork";
 | |
| 
 | |
| export function useSafeAppConnection(connector?: SafeAppConnector) {
 | |
|   const { activate, active } = useWeb3();
 | |
|   const { activeNetworkId} = useNetwork();
 | |
| 
 | |
|   const tried = ref(false);
 | |
| 
 | |
|   onMounted(() => {
 | |
|     connector?.isSafeApp().then(async (loadedInSafe: boolean) => {
 | |
|       if (loadedInSafe) {
 | |
|         await activate(connector, undefined, true).catch(() => {
 | |
|           tried.value = true;
 | |
|         });
 | |
| 
 | |
|         activeNetworkId.value = (await connector.getChainId() === 1) ? Network.Mainnet : Network.Polygon;
 | |
|       } else {
 | |
|         tried.value = true;
 | |
|       }
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   // if the connection worked, wait until we get confirmation of that to flip the flag
 | |
|   watch([tried, active], () => {
 | |
|     if (!tried.value && active.value) {
 | |
|       tried.value = true;
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   return {
 | |
|     tried
 | |
|   };
 | |
| } | 
