0.0.1 • Published 7 months ago

react-permissionz v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

React Permissionz

Installation

npm install react-permissionz

Usage

import React from "react";
import { createPermissions } from "react-permissionz";

const { Permissions } = createPermissions({
  READ: "read",
  WRITE: "write",
  DELETE: "delete",
});

// Page.tsx
function Page() {
  const permissions = Permissions.usePermissions();
  return (
    <div>
      {permissions.has(Permissions.consts.READ) ? (
        <button type="button">Read</button>
      ) : null}
      <Permissions checker={(p) => p.has(Permissions.consts.WRITE)}>
        <button type="button">Write</button>
      </Permissions>
      <Permissions.One allowed={Permissions.consts.DELETE}>
        <button type="button">Delete</button>
      </Permissions.One>
    </div>
  );
}

// App.tsx
function App() {
  const { data, isLoading, isError } = useMeQuery();
  return (
    <Permissions.Provider
      // null: not ready
      permissions={isLoading || isError ? null : data?.permissions ?? []}
    >
      <Page />
    </Permissions.Provider>
  );
}
0.0.1

7 months ago