🐛 Partially fixed bugs with connecting to wallet button. Removed one button state for simplicity.

This commit is contained in:
sid
2024-10-26 16:02:40 +01:00
parent d77c490e01
commit d33b175b64
3 changed files with 24 additions and 134 deletions

View File

@@ -40,21 +40,30 @@ const Header = () => {
<ul className="flex space-x-6"> <ul className="flex space-x-6">
<li> <li>
<Link href="/" legacyBehavior> <Link href="/" legacyBehavior>
<a className="text-white hover:text-blue-500 transition-colors duration-300"> <a
className="text-white hover:text-blue-500 transition-colors duration-300"
style={{ textShadow: '1px 1px 2px rgba(0, 0, 0, 0.5)' }}
>
Home Home
</a> </a>
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/TicketListings" legacyBehavior> <Link href="/TicketListings" legacyBehavior>
<a className="text-white hover:text-blue-500 transition-colors duration-300"> <a
className="text-white hover:text-blue-500 transition-colors duration-300"
style={{ textShadow: '1px 1px 2px rgba(0, 0, 0, 0.5)' }}
>
Events Events
</a> </a>
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/contact" legacyBehavior> <Link href="/contact" legacyBehavior>
<a className="text-white hover:text-blue-500 transition-colors duration-300"> <a
className="text-white hover:text-blue-500 transition-colors duration-300"
style={{ textShadow: '1px 1px 2px rgba(0, 0, 0, 0.5)' }}
>
Contact Contact
</a> </a>
</Link> </Link>

View File

@@ -37,20 +37,16 @@ function formatAddress(address: string | undefined): string {
function MetaMaskConnect() { function MetaMaskConnect() {
const { sdk, connected, connecting, account } = useSDK(); const { sdk, connected, connecting, account } = useSDK();
const [metaMaskInstalled, setMetaMaskInstalled] = useState(false); const [isConnected, setIsConnected] = useState(false);
const isMetaMaskInstalled = () =>
typeof window !== 'undefined' && typeof window.ethereum !== 'undefined';
useEffect(() => { useEffect(() => {
if (isMetaMaskInstalled()) { setIsConnected(connected);
setMetaMaskInstalled(true); }, [connected]);
}
}, []);
const connect = async () => { const connect = async () => {
try { try {
await sdk?.connect(); await sdk?.connect();
setIsConnected(true);
} catch (err) { } catch (err) {
console.warn(`No accounts found`, err); console.warn(`No accounts found`, err);
} }
@@ -59,36 +55,25 @@ function MetaMaskConnect() {
const disconnect = () => { const disconnect = () => {
if (sdk) { if (sdk) {
sdk.terminate(); sdk.terminate();
setIsConnected(false);
} }
}; };
if (!metaMaskInstalled) {
return (
<Button
onClick={() =>
window.open('https://metamask.io/download.html', '_blank')
}
className="bg-gradient-to-r from-blue-500 to-indigo-700"
>
Install MetaMask
</Button>
);
}
return ( return (
<div className="relative"> <div className="relative">
{connected ? ( {isConnected ? (
<Popover> <Popover>
<PopoverTrigger asChild> <PopoverTrigger asChild>
<Button>{formatAddress(account)}</Button> <Button>{formatAddress(account)}</Button>
</PopoverTrigger> </PopoverTrigger>
<PopoverContent className="w-44"> <PopoverContent className="w-44">
<button <Button
variant="destructive"
onClick={disconnect} onClick={disconnect}
className="w-full px-4 py-2 text-left text-destructive hover:bg-muted" className="w-full px-4 py-2 text-left hover:bg-muted hover:text-destructive"
> >
Disconnect Disconnect
</button> </Button>
</PopoverContent> </PopoverContent>
</Popover> </Popover>
) : ( ) : (

108
package-lock.json generated
View File

@@ -4976,7 +4976,6 @@
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -13017,6 +13016,7 @@
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz",
"integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==",
"dev": true, "dev": true,
"hasInstallScript": true,
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"node-gyp-build": "^4.3.0" "node-gyp-build": "^4.3.0"
@@ -13379,6 +13379,7 @@
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz",
"integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==",
"dev": true, "dev": true,
"hasInstallScript": true,
"optional": true, "optional": true,
"dependencies": { "dependencies": {
"node-gyp-build": "^4.3.0" "node-gyp-build": "^4.3.0"
@@ -24012,111 +24013,6 @@
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
},
"node_modules/@next/swc-darwin-arm64": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz",
"integrity": "sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-darwin-x64": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz",
"integrity": "sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz",
"integrity": "sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-linux-arm64-musl": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz",
"integrity": "sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz",
"integrity": "sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==",
"cpu": [
"arm64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz",
"integrity": "sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==",
"cpu": [
"ia32"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@next/swc-win32-x64-msvc": {
"version": "14.2.13",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz",
"integrity": "sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==",
"cpu": [
"x64"
],
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
} }
} }
} }