openreplay/frontend/app/components/hocs/withPermissions.js
Андрей Бабушкин b822b1c067 applied eslint
2025-02-26 20:31:01 +01:00

28 lines
937 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);
};