UNPKG

@adonis-agora/authkit-react

Version:

Frontend ergonomics over AuthKit for AdonisJS + Inertia + React apps: a typed useAuth() hook, role-gating hooks and gating components.

29 lines (28 loc) 1.04 kB
import { QueryClient } from '@tanstack/react-query'; import { createContext, createElement, useContext } from 'react'; import { createAuthkitClient } from './client.js'; const AuthkitClientContext = createContext(null); export function useAuthkitClient() { const client = useContext(AuthkitClientContext); if (!client) { throw new Error('[AuthkitClient] useAuthkitClient() chamado fora de <AuthkitClientProvider>. ' + 'Envolva sua árvore com <AuthkitClientProvider>.'); } return client; } export function AuthkitClientProvider({ client, opts, children }) { const resolved = client ?? createAuthkitClient(opts); return createElement(AuthkitClientContext.Provider, { value: resolved }, children); } export function createAuthkitQueryClient() { return new QueryClient({ defaultOptions: { queries: { staleTime: 30_000, gcTime: 5 * 60_000, retry: 1, refetchOnWindowFocus: false, }, }, }); }