Redirect to previous page on connecting wallet

This commit is contained in:
Adw8 2024-08-07 11:57:23 +05:30
parent 34494ece12
commit 000d4ff846
3 changed files with 21 additions and 8 deletions

View File

@ -25,7 +25,7 @@ function App() {
<Route path="/" element={<LandingPage />} /> <Route path="/" element={<LandingPage />} />
<Route path="/verify-email" element={<VerifyEmail />} /> <Route path="/verify-email" element={<VerifyEmail />} />
<Route path="/email" element={<Email/>} /> <Route path="/email" element={<Email/>} />
<Route path="/connect-wallet" element={<ConnectWallet />} /> <Route path="/connect-wallet/:redirectTo?" element={<ConnectWallet />} />
<Route path="/thanks" element={<Thanks />} /> <Route path="/thanks" element={<Thanks />} />
<Route element={<SignPageLayout />}> <Route element={<SignPageLayout />}>
<Route path="/sign-with-nitro-key" element={<SignWithNitroKey />} /> <Route path="/sign-with-nitro-key" element={<SignWithNitroKey />} />

View File

@ -1,5 +1,5 @@
import React from "react"; import React from "react";
import { Outlet, useNavigate } from "react-router-dom"; import { Outlet, useLocation, useNavigate } from "react-router-dom";
import { import {
Toolbar, Toolbar,
@ -14,10 +14,14 @@ import { useWalletConnectContext } from "../context/WalletConnectContext";
const SignPageLayout = () => { const SignPageLayout = () => {
const { disconnect, session } = useWalletConnectContext(); const { disconnect, session } = useWalletConnectContext();
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation();
const disconnectHandler = async () => { const disconnectHandler = async () => {
const { pathname } = location;
const redirectTo = pathname ? pathname.substring(1) : "";
await disconnect(); await disconnect();
navigate("/"); navigate(`/connect-wallet/${redirectTo}`);
}; };
return ( return (

View File

@ -1,5 +1,5 @@
import React, { useEffect } from "react"; import React, { useEffect } from "react";
import {useLocation, useNavigate } from "react-router-dom"; import {useLocation, useNavigate, useParams } from "react-router-dom";
import { Button, Box, Container, Typography, colors } from "@mui/material"; import { Button, Box, Container, Typography, colors } from "@mui/material";
@ -11,15 +11,24 @@ const ConnectWallet = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const {redirectTo} = useParams();
useEffect(() => { useEffect(() => {
if (session) { if (session) {
if (redirectTo){
navigate(`/${redirectTo}`, {
state: location.state
});
}
else {
navigate("/sign-with-nitro-key", { navigate("/sign-with-nitro-key", {
state: location.state state: location.state
}); });
} }
}, [session, navigate, location]); }
}, [session, navigate, redirectTo, location.state]);
const handler = async () => { const handler = async () => {
await connect(); await connect();