diff --git a/apps/events/src/Boot.tsx b/apps/events/src/Boot.tsx index 7c7565d5..fa287f79 100644 --- a/apps/events/src/Boot.tsx +++ b/apps/events/src/Boot.tsx @@ -1,6 +1,7 @@ import { RouterProvider, createRouter } from '@tanstack/react-router'; -import { AuthProvider } from './components/auth'; +import { Identity } from '@graphprotocol/hypergraph'; +import { PrivyProvider } from '@privy-io/react-auth'; import { routeTree } from './routeTree.gen'; // Create a new router instance @@ -15,8 +16,25 @@ declare module '@tanstack/react-router' { export function Boot() { return ( - - - + + + + + ); } diff --git a/apps/events/src/components/auth.tsx b/apps/events/src/components/auth.tsx deleted file mode 100644 index 6eb7e8a8..00000000 --- a/apps/events/src/components/auth.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { Identity } from '@graphprotocol/hypergraph'; -import { PrivyProvider, usePrivy, useWallets } from '@privy-io/react-auth'; -import { useEffect, useState } from 'react'; -import { createWalletClient, custom } from 'viem'; -import { mainnet } from 'viem/chains'; - -function DoGraphLogin() { - const { login } = Identity.useGraphLogin(); - // biome-ignore lint/correctness/useExhaustiveDependencies: this is an issue and will make sure login is not run in a useEffect - useEffect(() => { - console.log('Logging in to The Graph'); - login(); - }, []); - return
; -} - -function Auth({ children }: { children: React.ReactNode }) { - const { signMessage, authenticated } = usePrivy(); - const { wallets } = useWallets(); - const [signer, setSigner] = useState(null); - - // biome-ignore lint/correctness/useExhaustiveDependencies: todo [this is kinda ugly] - useEffect(() => { - if (wallets.length > 0) { - (async () => { - const embeddedWallet = wallets.find((wallet) => wallet.walletClientType === 'privy') || wallets[0]; - const privyProvider = await embeddedWallet.getEthereumProvider(); - - const walletClient = createWalletClient({ - chain: mainnet, - transport: custom(privyProvider), - }); - - // create a signer-like interface compatible with Identity.Signer - const newSigner: Identity.Signer = { - getAddress: async () => { - const [address] = await walletClient.getAddresses(); - return address; - }, - signMessage: async (message: string) => { - if (embeddedWallet.walletClientType === 'privy') { - const { signature } = await signMessage({ message }); - return signature; - } - const [address] = await walletClient.getAddresses(); - return await walletClient.signMessage({ account: address, message }); - }, - }; - - setSigner(newSigner); - })(); - } - }, [wallets, setSigner, signMessage]); - - return ( - <> - {signer && authenticated ? ( - - - {children} - - ) : ( - // @ts-expect-error signer is not required should be fixed in GraphLogin - {children} - )} - - ); -} - -export function AuthProvider({ children }: { children: React.ReactNode }) { - return ( - - {children} - - ); -} diff --git a/apps/events/src/components/logout.tsx b/apps/events/src/components/logout.tsx index 5fe9a2df..e66d0ce0 100644 --- a/apps/events/src/components/logout.tsx +++ b/apps/events/src/components/logout.tsx @@ -7,9 +7,9 @@ export function Logout() { const { logout: graphLogout } = Identity.useGraphLogin(); const { logout: privyLogout } = usePrivy(); const router = useRouter(); - const disconnectWallet = () => { - graphLogout(); - privyLogout(); + const disconnectWallet = async () => { + await privyLogout(); + graphLogout(); // needs to be called after privy logout since it triggers a re-render router.navigate({ to: '/login', }); diff --git a/apps/events/src/routes/__root.tsx b/apps/events/src/routes/__root.tsx index 1283ca0e..b66c7700 100644 --- a/apps/events/src/routes/__root.tsx +++ b/apps/events/src/routes/__root.tsx @@ -6,7 +6,6 @@ import { TanStackRouterDevtools } from '@tanstack/router-devtools'; export const Route = createRootRoute({ component: () => { const { authenticated, getIdentity, getSessionToken } = Identity.useGraphLogin(); - const graphIdentity = getIdentity(); const loggedInSessionToken = getSessionToken(); @@ -28,7 +27,7 @@ export const Route = createRootRoute({ <>
- + Home