UNPKG

@cerbos/react

Version:

A collection of React hooks for interacting with Cerbos policy decision points

42 lines 1.22 kB
import type { ClientWithPrincipal } from "@cerbos/core"; /** * A hook to access the Cerbos client passed down by the {@link CerbosProvider}. * * @remarks * The client's methods are asynchronous, so depending on your use case it may be easier to * use one of the higher-level hooks ({@link useCheckResource}, {@link useCheckResources}, or * {@link useIsAllowed}), which convert the resulting promises into {@link AsyncResult}s. * * * @example * ```typescript * import { useCerbos } from "@cerbos/react"; * * function SomeComponent() { * const cerbos = useCerbos(); * * const handleClick = async () => { * const decision = await cerbos.checkResource({ * resource: { * kind: "document", * id: "1", * attr: { owner: "user@example.com" }, * }, * actions: ["view", "edit"], * }); * * if (decision.allAllowed()) { * // do something * } else if (decision.allowedActions().includes("view")) { * // do something else * } * ... * }; * * return <button onClick={handleClick}>...</button>; * } * ``` * @public */ export declare function useCerbos(): ClientWithPrincipal; //# sourceMappingURL=use-cerbos.d.ts.map