Navigate to homescreen on approving sign request (#75)

* Navigate to homescreen on approving sign request

* Add spinner to button on approve

---------

Co-authored-by: Adw8 <adwait@deepstacksoft.com>
This commit is contained in:
Adwait Gharpure 2024-04-03 11:36:46 +05:30 committed by Nabarun Gogoi
parent 703ea72c1f
commit 2e18397a95

View File

@ -34,6 +34,7 @@ const SignRequest = ({ route }: SignRequestProps) => {
const [message, setMessage] = useState<string>(''); const [message, setMessage] = useState<string>('');
const [network, setNetwork] = useState<string>(''); const [network, setNetwork] = useState<string>('');
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
const [isApproving, setIsApproving] = useState(false);
const navigation = const navigation =
useNavigation<NativeStackNavigationProp<StackParamsList>>(); useNavigation<NativeStackNavigationProp<StackParamsList>>();
@ -129,7 +130,6 @@ const SignRequest = ({ route }: SignRequestProps) => {
}, [retrieveData, sanitizePath, route]); }, [retrieveData, sanitizePath, route]);
const handleWalletConnectRequest = async () => { const handleWalletConnectRequest = async () => {
setIsLoading(true);
const { requestEvent } = route.params || {}; const { requestEvent } = route.params || {};
if (!account) { if (!account) {
@ -149,7 +149,6 @@ const SignRequest = ({ route }: SignRequestProps) => {
const { topic } = requestEvent; const { topic } = requestEvent;
await web3wallet!.respondSessionRequest({ topic, response }); await web3wallet!.respondSessionRequest({ topic, response });
setIsLoading(false);
}; };
const handleIntent = async () => { const handleIntent = async () => {
@ -167,25 +166,25 @@ const SignRequest = ({ route }: SignRequestProps) => {
}; };
const signMessageHandler = async () => { const signMessageHandler = async () => {
setIsApproving(true);
if (route.params.requestEvent) { if (route.params.requestEvent) {
await handleWalletConnectRequest(); await handleWalletConnectRequest();
} else { } else {
await handleIntent(); await handleIntent();
} }
setIsApproving(false);
navigation.navigate('Laconic'); navigation.navigate('Laconic');
}; };
const rejectRequestHandler = async () => { const rejectRequestHandler = async () => {
if (route.params?.requestEvent) { if (route.params?.requestEvent) {
setIsLoading(true);
const response = rejectWalletConnectRequest(route.params?.requestEvent); const response = rejectWalletConnectRequest(route.params?.requestEvent);
const { topic } = route.params?.requestEvent; const { topic } = route.params?.requestEvent;
await web3wallet!.respondSessionRequest({ await web3wallet!.respondSessionRequest({
topic, topic,
response, response,
}); });
setIsLoading(true);
} }
navigation.navigate('Laconic'); navigation.navigate('Laconic');
}; };
@ -255,7 +254,10 @@ const SignRequest = ({ route }: SignRequestProps) => {
)} )}
</ScrollView> </ScrollView>
<View style={styles.buttonContainer}> <View style={styles.buttonContainer}>
<Button mode="contained" onPress={signMessageHandler}> <Button
mode="contained"
onPress={signMessageHandler}
loading={isApproving}>
Yes Yes
</Button> </Button>
<Button <Button