Merge branch 'dev' into staging
This commit is contained in:
commit
82378bf908
@ -1,4 +1,6 @@
|
|||||||
import PenIcon from "@Assets/Icons/pen.svg";
|
import PenIcon from "@Assets/Icons/pen.svg";
|
||||||
|
import Trash from "@Assets/Icons/trash.svg";
|
||||||
|
|
||||||
import { OfficeFolder } from "le-coffre-resources/dist/Notary";
|
import { OfficeFolder } from "le-coffre-resources/dist/Notary";
|
||||||
import Module from "@Front/Config/Module";
|
import Module from "@Front/Config/Module";
|
||||||
import { Customer } from "le-coffre-resources/dist/Notary";
|
import { Customer } from "le-coffre-resources/dist/Notary";
|
||||||
@ -10,6 +12,7 @@ import Typography, { ITypo } from "../../Typography";
|
|||||||
import WarningBadge from "../../WarningBadge";
|
import WarningBadge from "../../WarningBadge";
|
||||||
import classes from "./classes.module.scss";
|
import classes from "./classes.module.scss";
|
||||||
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
|
import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document";
|
||||||
|
import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders";
|
||||||
|
|
||||||
type IProps = {
|
type IProps = {
|
||||||
customer: Customer;
|
customer: Customer;
|
||||||
@ -23,6 +26,9 @@ export default class UserFolderHeader extends React.Component<IProps, IState> {
|
|||||||
isArchived: false,
|
isArchived: false,
|
||||||
};
|
};
|
||||||
public override render(): JSX.Element | null {
|
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()
|
const redirectPath = Module.getInstance()
|
||||||
.get()
|
.get()
|
||||||
.modules.pages.Folder.pages.EditClient.props.path.replace("[folderUid]", this.props.folder.uid ?? "")
|
.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}>
|
<Link href={redirectPath}>
|
||||||
<Image src={PenIcon} alt="edit" className={classes["edit-icon"]} onClick={this.onEditClick} />
|
<Image src={PenIcon} alt="edit" className={classes["edit-icon"]} onClick={this.onEditClick} />
|
||||||
</Link>
|
</Link>
|
||||||
|
<Link href={redirectCurrent}>
|
||||||
|
<Image
|
||||||
|
src={Trash}
|
||||||
|
alt="delete"
|
||||||
|
className={classes["edit-icon"]}
|
||||||
|
onClick={() => this.removeCustomer(this.props.customer.uid!)}
|
||||||
|
/>
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@ -73,6 +87,26 @@ export default class UserFolderHeader extends React.Component<IProps, IState> {
|
|||||||
return notAskedDocuments.length > 0;
|
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 {
|
private formatPhoneNumber(phoneNumber: string): string {
|
||||||
if (!phoneNumber) return "";
|
if (!phoneNumber) return "";
|
||||||
phoneNumber = phoneNumber.replace(/ /g, "");
|
phoneNumber = phoneNumber.replace(/ /g, "");
|
||||||
|
@ -18,9 +18,6 @@ import DocumentList from "./DocumentList";
|
|||||||
import UserFolderHeader from "./UserFolderHeader";
|
import UserFolderHeader from "./UserFolderHeader";
|
||||||
import { AnchorStatus } from "@Front/Components/Layouts/Folder/FolderInformation";
|
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 = {
|
type IProps = {
|
||||||
customer: Customer;
|
customer: Customer;
|
||||||
animationDelay?: number;
|
animationDelay?: number;
|
||||||
@ -78,7 +75,6 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div className={classes["root"]} data-opened={this.props.isOpened.toString()}>
|
<div className={classes["root"]} data-opened={this.props.isOpened.toString()}>
|
||||||
<Button variant={EButtonVariant.LINE} icon={Trash} onClick={() => this.removeCustomer(this.props.customer.uid!)} />{" "}
|
|
||||||
<Confirm
|
<Confirm
|
||||||
isOpen={this.state.isOpenDeletionModal}
|
isOpen={this.state.isOpenDeletionModal}
|
||||||
onClose={this.closeDeletionModal}
|
onClose={this.closeDeletionModal}
|
||||||
@ -219,24 +215,4 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
isOpenDeletionModal: false,
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -176,7 +176,7 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
|
|||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{!this.doesFolderHaveCustomer() && (
|
{this.canDeleteFolder() && (
|
||||||
<span className={classes["delete-folder"]} onClick={this.openVerifDeleteFolder}>
|
<span className={classes["delete-folder"]} onClick={this.openVerifDeleteFolder}>
|
||||||
<Button variant={EButtonVariant.SECONDARY}>Supprimer le dossier</Button>
|
<Button variant={EButtonVariant.SECONDARY}>Supprimer le dossier</Button>
|
||||||
</span>
|
</span>
|
||||||
@ -405,6 +405,10 @@ class FolderInformationClass extends BasePage<IPropsClass, IState> {
|
|||||||
return this.props.selectedFolder?.customers!.length > 0;
|
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 {
|
private openArchivedModal(): void {
|
||||||
if (this.everyDocumentValidated() && this.props.isAnchored === AnchorStatus.VERIFIED_ON_CHAIN) {
|
if (this.everyDocumentValidated() && this.props.isAnchored === AnchorStatus.VERIFIED_ON_CHAIN) {
|
||||||
this.setState({ isArchivedModalOpen: true });
|
this.setState({ isArchivedModalOpen: true });
|
||||||
|
@ -179,6 +179,7 @@ class UpdateClientClass extends BasePage<IPropsClass, IState> {
|
|||||||
if (!values["cell_phone_number"]) return;
|
if (!values["cell_phone_number"]) return;
|
||||||
// remove every space from the phone number
|
// 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(/\s/g, "");
|
||||||
|
values["cell_phone_number"] = values["cell_phone_number"].replace(/\./g, "");
|
||||||
if (values["cell_phone_number"] && values["cell_phone_number"].length === 10) {
|
if (values["cell_phone_number"] && values["cell_phone_number"].length === 10) {
|
||||||
// get the first digit of the phone number
|
// get the first digit of the phone number
|
||||||
const firstDigit = values["cell_phone_number"].charAt(0);
|
const firstDigit = values["cell_phone_number"].charAt(0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user