@cerbos/react
Version:
A collection of React hooks for interacting with Cerbos policy decision points
42 lines • 1.22 kB
TypeScript
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