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.

43 lines (42 loc) 1.31 kB
import { useCallback, useState } from 'react'; import { useAuthkitConfig } from '../config.js'; import { jsonRequest } from './use_resource.js'; export function useSwitchOrganization() { const config = useAuthkitConfig(); const base = config.endpoints.orgs.replace('/json', ''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const activate = useCallback(async (orgId) => { setLoading(true); setError(null); try { await jsonRequest(`${base}/${encodeURIComponent(orgId)}/activate`, { method: 'POST', csrfToken: config.csrfToken, }); } catch (err) { setError(err); } finally { setLoading(false); } }, [base, config.csrfToken]); const deactivate = useCallback(async () => { setLoading(true); setError(null); try { await jsonRequest(`${base}/deactivate`, { method: 'POST', csrfToken: config.csrfToken, }); } catch (err) { setError(err); } finally { setLoading(false); } }, [base, config.csrfToken]); return { loading, error, activate, deactivate }; }