Files
edr-platform/apps/edr-freight-web/backoffice/src/shared/context/PermissionContext.tsx
2026-07-10 10:41:48 +03:00

35 lines
844 B
TypeScript

import { Permission } from "@/shared/dto/user/meDto";
import React, {
createContext,
FC,
ReactNode,
useContext,
useMemo,
} from "react";
type PermContext = { permissions: string[]; permissionObjects?: Permission[] };
const PermissionContext = createContext<PermContext>({ permissions: [] });
interface PermissionProviderProps {
permissions?: Permission[];
children: ReactNode;
}
export const PermissionProvider: FC<PermissionProviderProps> = ({
permissions,
children,
}) => {
const permissionKeys = useMemo(
() => permissions?.map((p) => p.key),
[permissions]
);
return (
<PermissionContext.Provider value={{ permissions: permissionKeys || [],permissionObjects:permissions }}>
{children}
</PermissionContext.Provider>
);
};
export const usePermissions = () => useContext(PermissionContext);