diff --git a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/package.json b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/package.json index 099fe68..d09b85f 100644 --- a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/package.json +++ b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/package.json @@ -9,11 +9,11 @@ "lint": "next lint" }, "dependencies": { - "@metamask/smart-accounts-kit": "^0.1.0", + "@metamask/smart-accounts-kit": "^0.2.0", "@tailwindcss/postcss": "^4.1.1", "@tanstack/react-query": "^5.90.7", "lucide-react": "^0.487.0", - "next": "15.3.4", + "next": "15.4.8", "permissionless": "^0.2.46", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -27,7 +27,7 @@ "@types/react-dom": "^19", "autoprefixer": "^10.4.21", "eslint": "^9", - "eslint-config-next": "15.3.4", + "eslint-config-next": "15.4.8", "postcss": "^8.5.3", "tailwindcss": "^4.1.1", "typescript": "^5" diff --git a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/ConnectButton.tsx b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/ConnectButton.tsx index f3746eb..d9d80c2 100644 --- a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/ConnectButton.tsx +++ b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/ConnectButton.tsx @@ -1,11 +1,22 @@ "use client"; -import { useConnect } from "wagmi"; +import { useAccount, useChainId, useConnect, useSwitchChain } from "wagmi"; import Button from "@/components/Button"; import { metaMask } from "wagmi/connectors"; export default function ConnectButton() { const { connect } = useConnect(); + const { chainId: connectedChainId, isConnected } = useAccount(); + const { switchChain } = useSwitchChain(); + const currentChainId = useChainId(); + + if (isConnected && connectedChainId !== currentChainId) { + return ( + switchChain({ chainId: currentChainId })}> + Switch Chain + + ); + } return ( connect({ connector: metaMask() })}> diff --git a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/Steps.tsx b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/Steps.tsx index 22ab5be..0fa6c42 100644 --- a/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/Steps.tsx +++ b/packages/create-gator-app/templates/nextjs/advanced-permissions-starter/src/components/Steps.tsx @@ -7,13 +7,14 @@ import RedeemPermissionButton from "@/components/RedeemPermissionButton"; import GrantPermissionsButton from "./GrantPermissionsButton"; import { useSessionAccount } from "@/providers/SessionAccountProvider"; import { usePermissions } from "@/providers/PermissionProvider"; -import { useAccount } from "wagmi"; +import { useAccount, useChainId } from "wagmi"; export default function Steps() { const [step, setStep] = useState(1); const { sessionAccount } = useSessionAccount(); const { permission } = usePermissions(); - const { isConnected } = useAccount(); + const { isConnected, chainId: connectedChainId } = useAccount(); + const currentChainId = useChainId(); useEffect(() => { if (!isConnected) { @@ -25,12 +26,12 @@ export default function Steps() { setStep(4); } else if (sessionAccount) { setStep(3); - } else if (isConnected) { + } else if (isConnected && connectedChainId === currentChainId) { setStep(2); } else { setStep(1); } - }, [sessionAccount, permission, isConnected]); + }, [sessionAccount, permission, isConnected, connectedChainId, currentChainId]); return ( @@ -83,7 +84,7 @@ export default function Steps() { key and save it in the session storage. In production explore all other signers supported by the