Enum-based Example
A React example that uses enums instead of string literals for permission actions
Purpose
examples/enum-based shows how to use enums as the action vocabulary for Permix. This is useful when your codebase already models permissions as centralized constants and you want autocomplete plus refactor safety from those enums.
What it demonstrates
enumvalues as permission actions- setup through a single static ruleset
- React hook usage plus direct
permix.check(...) - declarative checks with the
Checkcomponent
Core idea
The example moves action names into enums such as PostPermission.Create, then uses those enum members everywhere instead of plain strings.
export enum PostPermission {
Create = 'create',
Read = 'read',
Update = 'update',
Delete = 'delete',
}That same enum member is then used in the UI and in imperative checks:
if (!permix.check('post', PostPermission.Create)) {
return
}Run it
cd examples/enum-based
pnpm devKey files
src/lib/permissions.ts: enum declarations for each entitysrc/lib/permix.ts: typed Permix instance using enum-backed actionssrc/App.tsx: component usage and imperative checks
When to use it
Use this shape if your team wants permissions to live in shared enums instead of freeform strings. It keeps large codebases more uniform and makes renaming actions less error-prone.