From d62f79b3b319f65668e5e0371044091b4c04d8da Mon Sep 17 00:00:00 2001 From: David Philipson Date: Wed, 18 Sep 2024 13:34:39 -0700 Subject: [PATCH] fix: allow useLogout without authModalContext `useLogout` does not depend on UI components and now will no longer throw an error when used outside an `AuthModalProvider`.` --- account-kit/react/src/components/auth/context.ts | 6 +++++- account-kit/react/src/hooks/useLogout.ts | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/account-kit/react/src/components/auth/context.ts b/account-kit/react/src/components/auth/context.ts index 098a4c78d..913b2db47 100644 --- a/account-kit/react/src/components/auth/context.ts +++ b/account-kit/react/src/components/auth/context.ts @@ -27,7 +27,7 @@ export const AuthModalContext = createContext( // eslint-disable-next-line jsdoc/require-jsdoc export const useAuthContext = (): AuthContextType => { - const context = useContext(AuthModalContext); + const context = useOptionalAuthContext(); if (!context) { throw new Error( @@ -37,3 +37,7 @@ export const useAuthContext = (): AuthContextType => { return context; }; + +// eslint-disable-next-line jsdoc/require-jsdoc +export const useOptionalAuthContext = (): AuthContextType | undefined => + useContext(AuthModalContext); diff --git a/account-kit/react/src/hooks/useLogout.ts b/account-kit/react/src/hooks/useLogout.ts index 90429bfac..8f5deccfb 100644 --- a/account-kit/react/src/hooks/useLogout.ts +++ b/account-kit/react/src/hooks/useLogout.ts @@ -2,7 +2,7 @@ import { disconnect } from "@account-kit/core"; import { useMutation, type UseMutateFunction } from "@tanstack/react-query"; -import { useAuthContext } from "../components/auth/context.js"; +import { useOptionalAuthContext } from "../components/auth/context.js"; import { useAlchemyAccountContext } from "../context.js"; import type { BaseHookMutationArgs } from "../types.js"; @@ -37,7 +37,7 @@ export function useLogout( mutationArgs?: UseLogoutMutationArgs ): UseLogoutResult { const { queryClient, config } = useAlchemyAccountContext(); - const { resetAuthStep } = useAuthContext(); + const authContext = useOptionalAuthContext(); const { mutate: logout, @@ -47,7 +47,7 @@ export function useLogout( { mutationFn: async () => { await disconnect(config); - resetAuthStep(); + authContext?.resetAuthStep(); }, ...mutationArgs, },