use-roles

useRoles hook for role based rendering

Usage no npm install needed!

<script type="module">
  import useRoles from 'https://cdn.skypack.dev/use-roles';
</script>

README

use-roles

useRoles hook for role based rendering

NPM JavaScript Style Guide

Install

npm install --save use-roles

or

yarn add use-roles

Usage

import React, {useEffect} from 'react'

import {useRoles, RolesProvider, RoleChecker} from 'use-roles'
import 'use-roles/dist/index.css'

const App = () => {
  return (
    <RolesProvider>
      <RoleBasedComponent />
    </RolesProvider>
  )
}

const RoleBasedComponent = () => {
  const {setRole, setNowAllowed} = useRoles()
  useEffect(() => {
      setRole('admin')
      setNotAllowed(<div>You are not allowed to access this component</div>) // OPTIONAL
  }, [])
  return (
    <RoleChecker allowedRoles={['admin', 'testers']}>
      <p>Only admins and testers can see this</p>
    </RoleChecker>
    <RoleChecker allowedRoles={['accounting']}>
      <p>Only accountants can see this</p>
    </RoleChecker>
    <div>Anyone can see this</div>
  )
}

License

MIT © ap3ttit