@bloomlabs/permission-calculator-react
v0.0.1
Published
React hook for managing permissions using the [@bloomlabs/permission-calculator](https://www.npmjs.com/package/@bloomlabs/permission-calculator) library.
Downloads
12
Maintainers
Readme
@bloomlabs/permission-calculator-react
React hook for managing permissions using the @bloomlabs/permission-calculator library.
This package provides a simple React hook, usePermissionCalculator
, that allows you to manage permission flags in your React applications with ease. Additionally, a PermissionCalculatorComponent
is included for easy permission management in UI components.
Table of Contents
Installation
You can install this package using your favorite package manager:
npm install @bloomlabs/permission-calculator-react
yarn add @bloomlabs/permission-calculator-react
pnpm add @bloomlabs/permission-calculator-react
bun add @bloomlabs/permission-calculator-react
Usage
This package exports a usePermissionCalculator
React hook for managing permissions and a PermissionCalculatorComponent
that provides an interactive UI for toggling permissions.
Basic Setup (Hook Usage)
"use client";
import { usePermissionCalculator } from "@bloomlabs/permission-calculator-react";
import { PermissionFlags } from "@bloomlabs/permission-calculator";
function App() {
const {
permissions,
permissionsList,
addPermission,
removePermission,
hasPermission,
setPermissions,
} = usePermissionCalculator(0n | undefined); // Initialize with no permissions
return (
<div>
<h1>Permissions</h1>
<p>Current permissions: {permissions.toString()}</p>
<p>Permissions List: {permissionsList.join(", ")}</p>
<button onClick={() => addPermission(PermissionFlags.ADMINISTRATOR)}>
Add Administrator
</button>
<button onClick={() => removePermission(PermissionFlags.ADMINISTRATOR)}>
Remove Administrator
</button>
<p>
Has Administrator permission:{" "}
{hasPermission(PermissionFlags.ADMINISTRATOR).toString()}
</p>
</div>
);
}
API
usePermissionCalculator
usePermissionCalculator(initialPermissions?: bigint): {
permissions: bigint;
permissionsList: string[];
addPermission: (permission: PermissionFlagResolvable) => void;
removePermission: (permission: PermissionFlagResolvable) => void;
hasPermission: (permission: PermissionFlagResolvable) => boolean;
setPermissions: (permissions: PermissionFlagResolvable) => void;
}
Parameters
initialPermissions
(bigint
) - The initial permissions value. Defaults to0n
if not provided.
Returns
permissions
(bigint
): The current permissions value.permissionsList
(string[]
): The list of permissions based on the current permissions value.addPermission
((permission: PermissionFlagResolvable) => void
): Adds a permission to the current permissions.removePermission
((permission: PermissionFlagResolvable) => void
): Removes a permission from the current permissions.hasPermission
((permission: PermissionFlagResolvable) => boolean
): Checks if a specific permission is present.setPermissions
((permissions: PermissionFlagResolvable) => void
): Sets a new set of permissions.
License
This project is licensed under the MIT License.
For more details, check out the Permission Calculator GitHub repository.