diff --git a/.changeset/giant-coats-teach.md b/.changeset/giant-coats-teach.md new file mode 100644 index 0000000000000..247f7c47f497d --- /dev/null +++ b/.changeset/giant-coats-teach.md @@ -0,0 +1,8 @@ +--- +"@refinedev/core": patch +--- + +- Invalidate queries on logout. +- Resolves cached error state being there after login from forced logout. + +[Resolves #6944](https://github.com/refinedev/refine/issues/6997) diff --git a/packages/core/src/contexts/auth/index.tsx b/packages/core/src/contexts/auth/index.tsx index 1e555dcf31d18..d4ae25c972842 100644 --- a/packages/core/src/contexts/auth/index.tsx +++ b/packages/core/src/contexts/auth/index.tsx @@ -1,6 +1,7 @@ import React, { type PropsWithChildren } from "react"; import type { IAuthContext } from "./types"; +import { useQueryClient } from "@tanstack/react-query"; export const AuthProviderContext = React.createContext>( {}, @@ -9,6 +10,8 @@ export const AuthProviderContext = React.createContext>( export const AuthProviderContextProvider: React.FC< PropsWithChildren > = ({ children, isProvided, ...authProvider }) => { + const queryClient = useQueryClient(); + const handleLogin = async (params: unknown) => { try { const result = await authProvider.login?.(params); @@ -40,6 +43,7 @@ export const AuthProviderContextProvider: React.FC< const handleLogout = async (params: unknown) => { try { const result = await authProvider.logout?.(params); + queryClient.invalidateQueries(); return result; } catch (error) {