107 lines
3.6 KiB
TypeScript
107 lines
3.6 KiB
TypeScript
import LogOutButton from "@Front/Components/DesignSystem/LogOutButton";
|
|
import Module from "@Front/Config/Module";
|
|
import React from "react";
|
|
|
|
import NavigationLink from "../../NavigationLink";
|
|
import classes from "./classes.module.scss";
|
|
import Rules, { RulesMode } from "@Front/Components/Elements/Rules";
|
|
import { AppRuleActions, AppRuleNames } from "@Front/Api/Entities/rule";
|
|
|
|
type IProps = {
|
|
isOpen: boolean;
|
|
closeModal: () => void;
|
|
};
|
|
type IState = {};
|
|
|
|
export default class ProfileModal extends React.Component<IProps, IState> {
|
|
// TODO isEnabled depending on role given by DB
|
|
public override render(): JSX.Element | null {
|
|
if (!this.props.isOpen) return null;
|
|
return (
|
|
<>
|
|
<div className={classes["background"]} onClick={this.props.closeModal} />
|
|
<div className={classes["root"]}>
|
|
<NavigationLink path={Module.getInstance().get().modules.pages.MyAccount.props.path} text="Mon compte" />
|
|
<Rules
|
|
mode={RulesMode.NECESSARY}
|
|
rules={[
|
|
{
|
|
action: AppRuleActions.update,
|
|
name: AppRuleNames.officeRoles,
|
|
},
|
|
]}>
|
|
<NavigationLink
|
|
path={Module.getInstance().get().modules.pages.Roles.props.path}
|
|
text="Gestion des rôles"
|
|
routesActive={[
|
|
Module.getInstance().get().modules.pages.Roles.props.path,
|
|
Module.getInstance().get().modules.pages.Roles.pages.RolesInformations.props.path,
|
|
]}
|
|
/>
|
|
</Rules>
|
|
<Rules
|
|
mode={RulesMode.NECESSARY}
|
|
rules={[
|
|
{
|
|
action: AppRuleActions.update,
|
|
name: AppRuleNames.deedTypes,
|
|
},
|
|
]}>
|
|
<NavigationLink
|
|
path={Module.getInstance().get().modules.pages.DeedTypes.props.path}
|
|
text="Paramétrage des listes de pièces"
|
|
routesActive={[
|
|
Module.getInstance().get().modules.pages.DeedTypes.props.path,
|
|
Module.getInstance().get().modules.pages.DeedTypes.pages.Create.props.path,
|
|
Module.getInstance().get().modules.pages.DeedTypes.pages.DeedTypesInformations.props.path,
|
|
Module.getInstance().get().modules.pages.DeedTypes.pages.Edit.props.path,
|
|
Module.getInstance().get().modules.pages.DocumentTypes.pages.Edit.props.path,
|
|
Module.getInstance().get().modules.pages.DocumentTypes.pages.Create.props.path,
|
|
Module.getInstance().get().modules.pages.DocumentTypes.pages.DocumentTypesInformations.props.path,
|
|
Module.getInstance().get().modules.pages.DocumentTypes.props.path,
|
|
]}
|
|
/>
|
|
</Rules>
|
|
<Rules
|
|
mode={RulesMode.NECESSARY}
|
|
rules={[
|
|
{
|
|
action: AppRuleActions.update,
|
|
name: AppRuleNames.offices,
|
|
},
|
|
]}>
|
|
<NavigationLink
|
|
path={Module.getInstance().get().modules.pages.Users.props.path}
|
|
text="Gestion des utilisateurs"
|
|
routesActive={[
|
|
Module.getInstance().get().modules.pages.Users.props.path,
|
|
Module.getInstance().get().modules.pages.Users.pages.UsersInformations.props.path,
|
|
]}
|
|
/>
|
|
</Rules>
|
|
<Rules
|
|
mode={RulesMode.NECESSARY}
|
|
rules={[
|
|
{
|
|
action: AppRuleActions.update,
|
|
name: AppRuleNames.offices,
|
|
},
|
|
]}>
|
|
<NavigationLink
|
|
path={Module.getInstance().get().modules.pages.Offices.props.path}
|
|
text="Gestion des offices"
|
|
routesActive={[
|
|
Module.getInstance().get().modules.pages.Offices.props.path,
|
|
Module.getInstance().get().modules.pages.Offices.pages.OfficesInformations.props.path,
|
|
]}
|
|
/>
|
|
</Rules>
|
|
<NavigationLink target="_blank" path="/CGU_LeCoffre_io.pdf" text="CGU" />
|
|
<div className={classes["separator"]} />
|
|
<LogOutButton />
|
|
</div>
|
|
</>
|
|
);
|
|
}
|
|
}
|