openreplay/frontend/app/components/hocs/withPermissions.js
Andrey Babushkin fd5c0c9747
Add lokalisation (#3092)
* applied eslint

* add locales and lint the project

* removed error boundary

* updated locales

* fix min files

* fix locales
2025-03-06 17:43:15 +01:00

34 lines
998 B
JavaScript

import { useStore } from 'App/mstore';
import React from 'react';
import { NoPermission, NoSessionPermission } from 'UI';
import { observer } from 'mobx-react-lite';
export default (
requiredPermissions,
className,
isReplay = false,
andEd = true,
) =>
(BaseComponent) => {
function WrapperClass(props) {
const { userStore } = useStore();
const permissions = userStore.account.permissions ?? [];
const { isEnterprise } = userStore;
const hasPermission = andEd
? requiredPermissions.every((permission) =>
permissions.includes(permission),
)
: requiredPermissions.some((permission) =>
permissions.includes(permission),
);
return !isEnterprise || hasPermission ? (
<BaseComponent {...props} />
) : (
<div className={className}>
{isReplay ? <NoSessionPermission /> : <NoPermission />}
</div>
);
}
return observer(WrapperClass);
};