This commit is contained in:
Stefan Pejcic
2024-11-07 19:03:37 +01:00
parent c6df945ed5
commit 09f9f9502d
2472 changed files with 620417 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import React from "react";
import { AccessControlContext } from "@contexts/accessControl";
import { sanitizeResource } from "@definitions/helpers/sanitize-resource";
import type { IAccessControlContext } from "../../contexts/accessControl/types";
export const useCanWithoutCache = (): IAccessControlContext => {
const { can: canFromContext } = React.useContext(AccessControlContext);
const can = React.useMemo(() => {
if (!canFromContext) {
return undefined;
}
const canWithSanitizedResource: NonNullable<typeof canFromContext> =
async ({ params, ...rest }) => {
const sanitizedResource = params?.resource
? sanitizeResource(params.resource)
: undefined;
return canFromContext({
...rest,
...(params
? {
params: {
...params,
resource: sanitizedResource,
},
}
: {}),
});
};
return canWithSanitizedResource;
}, [canFromContext]);
return { can };
};