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