Files
bigcapital/packages/webapp/src/components/Dashboard/DashboardAbilityProvider.tsx
2023-02-03 01:02:31 +02:00

28 lines
651 B
TypeScript

// @ts-nocheck
import React from 'react';
import { Ability } from '@casl/ability';
import { createContextualCan } from '@casl/react';
import { useDashboardMetaBoot } from './DashboardBoot';
export const AbilityContext = React.createContext();
export const Can = createContextualCan(AbilityContext.Consumer);
/**
* Dashboard ability provider.
*/
export function DashboardAbilityProvider({ children }) {
const {
meta: { abilities },
} = useDashboardMetaBoot();
// Ability instance.
const ability = new Ability(abilities);
return (
<AbilityContext.Provider value={ability}>
{children}
</AbilityContext.Provider>
);
}