@adonis-agora/authkit-react
Version:
Frontend ergonomics over AuthKit for AdonisJS + Inertia + React apps: a typed useAuth() hook, role-gating hooks and gating components.
20 lines (19 loc) • 750 B
JavaScript
import { useCallback, useState } from 'react';
import { runPasskeyAssertion } from '../passkey/sudo.js';
export function usePasskeyAssertion(options) {
const { optionsUrl, actionUrl, csrfToken, returnTo } = options;
const [running, setRunning] = useState(false);
const [error, setError] = useState(null);
const run = useCallback(async () => {
setError(null);
setRunning(true);
try {
await runPasskeyAssertion({ optionsUrl, actionUrl, csrfToken, returnTo });
}
catch (err) {
setError(err instanceof Error ? err : new Error(String(err)));
setRunning(false);
}
}, [optionsUrl, actionUrl, csrfToken, returnTo]);
return { run, running, error };
}