Files
impersonator/components/Body/WalletConnectTab/index.tsx
2024-05-07 00:18:18 +10:00

61 lines
1.4 KiB
TypeScript

import { Center, Button } from "@chakra-ui/react";
import { SessionTypes } from "@walletconnect/types";
import ConnectionDetails from "./ConnectionDetails";
import Loading from "./Loading";
import URIInput from "./URIInput";
interface WalletConnectTabParams {
uri: string;
setUri: (value: string) => void;
isConnected: boolean;
initWalletConnect: () => void;
loading: boolean;
setLoading: (value: boolean) => void;
reset: (persistUri?: boolean) => void;
killSession: () => void;
web3WalletSession: SessionTypes.Struct | undefined;
}
function WalletConnectTab({
uri,
setUri,
isConnected,
initWalletConnect,
loading,
setLoading,
reset,
killSession,
web3WalletSession,
}: WalletConnectTabParams) {
return (
<>
<URIInput
uri={uri}
setUri={setUri}
isConnected={isConnected}
initWalletConnect={initWalletConnect}
/>
<Center>
<Button onClick={() => initWalletConnect()} isDisabled={isConnected}>
Connect
</Button>
</Center>
{loading && (
<Loading
isConnected={isConnected}
setLoading={setLoading}
reset={reset}
/>
)}
{web3WalletSession && isConnected && (
<ConnectionDetails
web3WalletSession={web3WalletSession}
killSession={killSession}
/>
)}
</>
);
}
export default WalletConnectTab;