Merge branch 'dev' into staging

This commit is contained in:
Vins 2024-05-31 15:18:29 +02:00
commit 82378bf908
4 changed files with 40 additions and 25 deletions

View File

@ -1,4 +1,6 @@
import PenIcon from "@Assets/Icons/pen.svg";
import Trash from "@Assets/Icons/trash.svg";
import { OfficeFolder } from "le-coffre-resources/dist/Notary";
import Module from "@Front/Config/Module";
import { Customer } from "le-coffre-resources/dist/Notary";
@ -10,6 +12,7 @@ import Typography, { ITypo } from "../../Typography";
import WarningBadge from "../../WarningBadge";
import classes from "./classes.module.scss";
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders";
type IProps = {
customer: Customer;
@ -23,6 +26,9 @@ export default class UserFolderHeader extends React.Component<IProps, IState> {
isArchived: false,
};
public override render(): JSX.Element | null {
const redirectCurrent = Module.getInstance()
.get()
.modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", this.props.folder.uid ?? "");
const redirectPath = Module.getInstance()
.get()
.modules.pages.Folder.pages.EditClient.props.path.replace("[folderUid]", this.props.folder.uid ?? "")
@ -60,6 +66,14 @@ export default class UserFolderHeader extends React.Component<IProps, IState> {
<Link href={redirectPath}>
<Image src={PenIcon} alt="edit" className={classes["edit-icon"]} onClick={this.onEditClick} />
</Link>
<Link href={redirectCurrent}>
<Image
src={Trash}
alt="delete"
className={classes["edit-icon"]}
onClick={() => this.removeCustomer(this.props.customer.uid!)}
/>
</Link>
</div>
)}
</div>
@ -73,6 +87,26 @@ export default class UserFolderHeader extends React.Component<IProps, IState> {
return notAskedDocuments.length > 0;
}
private async removeCustomer(uid: string) {
try {
//use folder put to remove customer from folder
const query = {
q: {
customers: "true",
},
};
const folder = await Folders.getInstance().getByUid(this.props.folder.uid!, query);
if (!folder.customers) return;
const customers = folder.customers.filter((customer) => customer.uid !== uid);
folder.customers = customers;
await Folders.getInstance().put(this.props.folder.uid!, folder);
//redirect on the same page
window.location.reload();
} catch (e) {
console.error(e);
}
}
private formatPhoneNumber(phoneNumber: string): string {
if (!phoneNumber) return "";
phoneNumber = phoneNumber.replace(/ /g, "");

View File

@ -18,9 +18,6 @@ import DocumentList from "./DocumentList";
import UserFolderHeader from "./UserFolderHeader";
import { AnchorStatus } from "@Front/Components/Layouts/Folder/FolderInformation";
import Trash from "@Assets/Icons/trash.svg";
import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders";
type IProps = {
customer: Customer;
animationDelay?: number;
@ -78,7 +75,6 @@ export default class UserFolder extends React.Component<IProps, IState> {
}
return (
<div className={classes["root"]} data-opened={this.props.isOpened.toString()}>
<Button variant={EButtonVariant.LINE} icon={Trash} onClick={() => this.removeCustomer(this.props.customer.uid!)} />{" "}
<Confirm
isOpen={this.state.isOpenDeletionModal}
onClose={this.closeDeletionModal}
@ -219,24 +215,4 @@ export default class UserFolder extends React.Component<IProps, IState> {
isOpenDeletionModal: false,
});
}
private async removeCustomer(uid: string) {
try {
//use folder put to remove customer from folder
const query = {
q: {
customers: "true",
},
};
const folder = await Folders.getInstance().getByUid(this.props.folder.uid!, query);
if (!folder.customers) return;
const customers = folder.customers.filter((customer) => customer.uid !== uid);
folder.customers = customers;
await Folders.getInstance().put(this.props.folder.uid!, folder);
//redirect on the same page
await this.props.getFolderCallback();
} catch (e) {
console.error(e);
}
}
}

View File

@ -176,7 +176,7 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
)}
</>
)}
{!this.doesFolderHaveCustomer() && (
{this.canDeleteFolder() && (
<span className={classes["delete-folder"]} onClick={this.openVerifDeleteFolder}>
<Button variant={EButtonVariant.SECONDARY}>Supprimer le dossier</Button>
</span>
@ -405,6 +405,10 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
return this.props.selectedFolder?.customers!.length > 0;
}
private canDeleteFolder(): boolean {
return (this.props.selectedFolder?.customers?.length ?? 0) === 0 && (this.props.selectedFolder?.documents?.length ?? 0) === 0;
}
private openArchivedModal(): void {
if (this.everyDocumentValidated() && this.props.isAnchored === AnchorStatus.VERIFIED_ON_CHAIN) {
this.setState({ isArchivedModalOpen: true });

View File

@ -179,6 +179,7 @@ class UpdateClientClass extends BasePage<IPropsClass, IState> {
if (!values["cell_phone_number"]) return;
// remove every space from the phone number
values["cell_phone_number"] = values["cell_phone_number"].replace(/\s/g, "");
values["cell_phone_number"] = values["cell_phone_number"].replace(/\./g, "");
if (values["cell_phone_number"] && values["cell_phone_number"].length === 10) {
// get the first digit of the phone number
const firstDigit = values["cell_phone_number"].charAt(0);