🐛 Fixing folders order

This commit is contained in:
Maxime Lalo 2023-05-10 18:59:00 +02:00
parent ff3d607186
commit 6029a21760

View File

@ -1,12 +1,12 @@
import { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard"; import { IDashBoardFolder } from "@Front/Components/LayoutTemplates/DefaultNotaryDashboard";
import Module from "@Front/Config/Module";
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import React from "react"; import React from "react";
import FolderContainer from "../FolderContainer"; import FolderContainer from "../FolderContainer";
import classes from "./classes.module.scss"; import classes from "./classes.module.scss";
import Module from "@Front/Config/Module";
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
type IProps = { type IProps = {
folders: IDashBoardFolder[]; folders: IDashBoardFolder[];
@ -22,40 +22,52 @@ type IPropsClass = IProps & {
type IState = {}; type IState = {};
class FolderListClass extends React.Component<IPropsClass, IState> { class FolderListClass extends React.Component<IPropsClass, IState> {
public override render(): JSX.Element { private redirectPath: string = this.props.isArchived
const redirectPath: string = this.props.isArchived
? Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.pages.FolderInformation.props.path ? Module.getInstance().get().modules.pages.Folder.pages.FolderArchived.pages.FolderInformation.props.path
: Module.getInstance().get().modules.pages.Folder.pages.FolderInformation.props.path; : Module.getInstance().get().modules.pages.Folder.pages.FolderInformation.props.path;
public override render(): JSX.Element {
return ( return (
<div className={classes["root"]}> <div className={classes["root"]}>
{this.props.folders {this.renderFolders()}
.sort((folder) => { </div>
);
}
private renderFolders(): JSX.Element[] {
const pendingFolders = this.props.folders
.filter((folder) => {
const pendingDocuments = (folder.documents ?? []).filter( const pendingDocuments = (folder.documents ?? []).filter(
(document) => document.document_status === EDocumentStatus.DEPOSITED, (document) => document.document_status === EDocumentStatus.DEPOSITED,
); );
return pendingDocuments.length >= 1 ? -1 : 1; return pendingDocuments.length >= 1;
}) })
.sort((folder1, folder2) => { .sort((folder1, folder2) => {
return folder1.created_at! < folder2.created_at! ? -1 : 1; return folder1.created_at! > folder2.created_at! ? -1 : 1;
});
const otherFolders = this.props.folders
.filter((folder) => {
const pendingDocuments = (folder.documents ?? []).filter(
(document) => document.document_status === EDocumentStatus.DEPOSITED,
);
return pendingDocuments.length === 0;
}) })
.sort((folder1, folder2) => { .sort((folder1, folder2) => {
return folder1.folder_number! < folder2.folder_number! ? -1 : 1; return folder1.created_at! > folder2.created_at! ? -1 : 1;
}) });
.map((folder) => {
return [...pendingFolders, ...otherFolders].map((folder) => {
return ( return (
<div <div
onClick={this.props.onCloseLeftSide} onClick={this.props.onCloseLeftSide}
key={folder.uid} key={folder.uid}
className={folder.uid === this.props.selectedFolder ? classes["active"] : ""}> className={folder.uid === this.props.selectedFolder ? classes["active"] : ""}>
<Link href={redirectPath.replace("[folderUid]", folder.uid ?? "")}> <Link href={this.redirectPath.replace("[folderUid]", folder.uid ?? "")}>
<FolderContainer folder={folder} onSelectedFolder={this.props.onSelectedFolder} />; <FolderContainer folder={folder} onSelectedFolder={this.props.onSelectedFolder} />;
</Link> </Link>
</div> </div>
); );
})} });
;
</div>
);
} }
} }