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";

type IProps = {
	isOpen: boolean;
	closeModal: () => void;
};
type IState = {};

export default class BurgerModal 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.Folder.props.path}
						text="Dossiers en cours"
						routesActive={[
							Module.getInstance().get().modules.pages.Folder.pages.FolderInformation.props.path,
							Module.getInstance().get().modules.pages.Folder.pages.CreateFolder.props.path,
						]}
					/>
					<NavigationLink
						path={Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path}
						text="Dossiers archivés"
						routesActive={[Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.props.path]}
					/>
					<NavigationLink
						path={Module.getInstance().get().modules.pages.Collaborators.props.path}
						text="Collaborateurs"
						routesActive={[Module.getInstance().get().modules.pages.Collaborators.props.path]}
					/>
					<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,
						]}
					/>
					<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,
						]}
					/>
					<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,
						]}
					/>
					<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,
						]}
					/>
					<NavigationLink path={Module.getInstance().get().modules.pages.MyAccount.props.path} text="Mon compte" />
					<NavigationLink text="CGU" />
					<div className={classes["separator"]} />
					<LogOutButton />
				</div>
			</>
		);
	}
}
