From 7f1b2e38ef4939047392b5bb3ee8dbac55511bf1 Mon Sep 17 00:00:00 2001 From: Adwait Gharpure <69599306+Adw8@users.noreply.github.com> Date: Mon, 11 Mar 2024 16:14:08 +0530 Subject: [PATCH] Use separate page for walletconnect (#48) * Add function to disconnect session * Replace QR icon with WC logo * Use separate page for walletconnect * Change screen title * Make review changes * Make walletconnect page empty --------- Co-authored-by: Adw8 --- App.tsx | 23 ++++- assets/WalletConnect-Icon-Blueberry.png | Bin 0 -> 15660 bytes components/AddSession.tsx | 118 ++++++++++++++++++++++++ components/HomeScreen.tsx | 25 +++-- components/WalletConnect.tsx | 111 +--------------------- context/RequestContext.tsx | 9 +- types.ts | 1 + 7 files changed, 168 insertions(+), 119 deletions(-) create mode 100644 assets/WalletConnect-Icon-Blueberry.png create mode 100644 components/AddSession.tsx diff --git a/App.tsx b/App.tsx index 8f77788..0a5aa30 100644 --- a/App.tsx +++ b/App.tsx @@ -1,5 +1,6 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { Snackbar } from 'react-native-paper'; +import { Button, Snackbar } from 'react-native-paper'; +import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import { SignClientTypes } from '@walletconnect/types'; import { useNavigation } from '@react-navigation/native'; @@ -13,6 +14,7 @@ import HomeScreen from './components/HomeScreen'; import SignRequest from './components/SignRequest'; import InvalidPath from './components/InvalidPath'; import PairingModal from './components/PairingModal'; +import AddSession from './components/AddSession'; import WalletConnect from './components/WalletConnect'; import { StackParamsList } from './types'; import useInitialization, { @@ -32,7 +34,6 @@ const App = (): React.JSX.Element => { useNavigation>(); const { accounts } = useAccounts(); - const { requestSession, setRequestSession } = useRequests(); const [modalVisible, setModalVisible] = useState(false); @@ -132,7 +133,23 @@ const App = (): React.JSX.Element => { name="WalletConnect" component={WalletConnect} options={{ - title: 'Connect Wallet', + title: 'WalletConnect Sessions', + headerRight: () => ( + + ), + }} + /> + + diff --git a/assets/WalletConnect-Icon-Blueberry.png b/assets/WalletConnect-Icon-Blueberry.png new file mode 100644 index 0000000000000000000000000000000000000000..66625b2c401966286d25cff209f80fc341e5f60f GIT binary patch literal 15660 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 { + const navigation = + useNavigation>(); + + const { hasPermission, requestPermission } = useCameraPermission(); + const device = useCameraDevice('back'); + + const [currentWCURI, setCurrentWCURI] = useState(''); + const [isActive, setIsActive] = useState(AppState.currentState === 'active'); + const [isScanning, setScanning] = useState(true); + + const codeScanner = useCodeScanner({ + codeTypes: ['qr'], + onCodeScanned: codes => { + if (isScanning) { + codes.forEach(code => { + if (code.value) { + setCurrentWCURI(code.value); + setScanning(false); + } + }); + } + }, + }); + + const pair = async () => { + const pairing = await web3WalletPair({ uri: currentWCURI }); + navigation.navigate('WalletConnect'); + return pairing; + }; + // const disconnect = async () => { + // const activeSessions = await web3wallet.getActiveSessions(); + // const topic = Object.values(activeSessions)[0].topic; + // if (activeSessions) { + // await web3wallet.disconnectSession({ + // topic, + // reason: getSdkError('USER_DISCONNECTED'), + // }); + // navigation.navigate('Laconic'); + // return; + // } + // }; + useEffect(() => { + const handleAppStateChange = (newState: string) => { + setIsActive(newState === 'active'); + }; + + AppState.addEventListener('change', handleAppStateChange); + + if (!hasPermission) { + requestPermission(); + } + }, [hasPermission, isActive, requestPermission]); + + return ( + + {!hasPermission || !device ? ( + + {!hasPermission + ? 'No Camera Permission granted' + : 'No Camera Selected'} + + ) : ( + <> + + {isActive ? ( + + ) : ( + No Camera Selected! + )} + + + + Enter WalletConnect URI + + + + + + + + )} + + ); +}; +export default AddSession; diff --git a/components/HomeScreen.tsx b/components/HomeScreen.tsx index 9be6809..24aded1 100644 --- a/components/HomeScreen.tsx +++ b/components/HomeScreen.tsx @@ -1,7 +1,11 @@ import React, { useEffect, useState } from 'react'; -import { View, ActivityIndicator } from 'react-native'; +import { + View, + ActivityIndicator, + TouchableHighlight, + Image, +} from 'react-native'; import { Button, Text } from 'react-native-paper'; -import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { useNavigation } from '@react-navigation/native'; @@ -16,19 +20,28 @@ import styles from '../styles/stylesheet'; import { useAccounts } from '../context/AccountsContext'; import { StackParamsList } from '../types'; +const WCLogo = () => { + return ( + + ); +}; + const HomeScreen = () => { const { accounts, setAccounts } = useAccounts(); const navigation = useNavigation>(); - useEffect(() => { if (accounts.ethAccounts.length > 0) { navigation.setOptions({ headerRight: () => ( - + navigation.navigate('WalletConnect')}> + {} + ), }); } else { diff --git a/components/WalletConnect.tsx b/components/WalletConnect.tsx index 64a489c..1461f6d 100644 --- a/components/WalletConnect.tsx +++ b/components/WalletConnect.tsx @@ -1,107 +1,6 @@ -import React, { useEffect, useState } from 'react'; -import { AppState, View } from 'react-native'; -import { Button, Text, TextInput } from 'react-native-paper'; -import { - Camera, - useCameraDevice, - useCameraPermission, - useCodeScanner, -} from 'react-native-vision-camera'; +import React from 'react'; +import { View, Text } from 'react-native'; -import { useNavigation } from '@react-navigation/native'; -import { NativeStackNavigationProp } from '@react-navigation/native-stack'; - -import { web3WalletPair } from '../utils/wallet-connect/WalletConnectUtils'; -import styles from '../styles/stylesheet'; -import { StackParamsList } from '../types'; - -const WalletConnect = () => { - const navigation = - useNavigation>(); - - const { hasPermission, requestPermission } = useCameraPermission(); - const device = useCameraDevice('back'); - - const [currentWCURI, setCurrentWCURI] = useState(''); - const [isActive, setIsActive] = useState(AppState.currentState === 'active'); - const [isScanning, setScanning] = useState(true); - - const codeScanner = useCodeScanner({ - codeTypes: ['qr'], - onCodeScanned: codes => { - if (isScanning) { - codes.forEach(code => { - if (code.value) { - setCurrentWCURI(code.value); - setScanning(false); - } - }); - } - }, - }); - - const pair = async () => { - const pairing = await web3WalletPair({ uri: currentWCURI }); - navigation.navigate('Laconic'); - return pairing; - }; - - useEffect(() => { - const handleAppStateChange = (newState: string) => { - setIsActive(newState === 'active'); - }; - - AppState.addEventListener('change', handleAppStateChange); - - if (!hasPermission) { - requestPermission(); - } - }, [hasPermission, isActive, requestPermission]); - - return ( - - {!hasPermission || !device ? ( - - {!hasPermission - ? 'No Camera Permission granted' - : 'No Camera Selected'} - - ) : ( - <> - - {isActive ? ( - - ) : ( - No Camera Selected! - )} - - - - Enter WalletConnect URI - - - - - - - - )} - - ); -}; -export default WalletConnect; +export default function WalletConnect() { + return ; +} diff --git a/context/RequestContext.tsx b/context/RequestContext.tsx index ee1ad57..c78233d 100644 --- a/context/RequestContext.tsx +++ b/context/RequestContext.tsx @@ -1,10 +1,11 @@ import React, { createContext, useContext, useState } from 'react'; -const RequestContext = createContext<{ - // TODO: Remove any type +interface RequestContextProps { requestSession: any; setRequestSession: (requestSession: any) => void; -}>({ +} + +const RequestContext = createContext({ requestSession: {}, setRequestSession: () => {}, }); @@ -14,7 +15,7 @@ const useRequests = () => { return requestContext; }; -const RequestProvider = ({ children }: { children: any }) => { +const RequestProvider = ({ children }: { children: React.ReactNode }) => { const [requestSession, setRequestSession] = useState({}); return (