✨ Only one user folder opened working
This commit is contained in:
parent
528293430c
commit
84e049ce9d
@ -22,12 +22,10 @@ type IProps = {
|
|||||||
folder: IDashBoardFolder;
|
folder: IDashBoardFolder;
|
||||||
isArchived?: boolean;
|
isArchived?: boolean;
|
||||||
isOpened: boolean;
|
isOpened: boolean;
|
||||||
onOpen: (id: string) => void;
|
onChange: (id: string) => void;
|
||||||
onClose: () => void;
|
|
||||||
};
|
};
|
||||||
type IState = {
|
type IState = {
|
||||||
isOpenDeletionModal: boolean;
|
isOpenDeletionModal: boolean;
|
||||||
willClose: boolean;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default class UserFolder extends React.Component<IProps, IState> {
|
export default class UserFolder extends React.Component<IProps, IState> {
|
||||||
@ -41,13 +39,10 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
isOpenDeletionModal: false,
|
isOpenDeletionModal: false,
|
||||||
willClose: false,
|
|
||||||
};
|
};
|
||||||
this.toggleOpen = this.toggleOpen.bind(this);
|
|
||||||
this.closeDeletionModal = this.closeDeletionModal.bind(this);
|
this.closeDeletionModal = this.closeDeletionModal.bind(this);
|
||||||
this.openDeletionModal = this.openDeletionModal.bind(this);
|
this.openDeletionModal = this.openDeletionModal.bind(this);
|
||||||
this.openComponent = this.openComponent.bind(this);
|
this.changeUserFolder = this.changeUserFolder.bind(this);
|
||||||
this.closeComponent = this.closeComponent.bind(this);
|
|
||||||
}
|
}
|
||||||
public override render(): JSX.Element {
|
public override render(): JSX.Element {
|
||||||
const documentsAsked: Document[] | null = this.getDocumentsByStatus("ASKED");
|
const documentsAsked: Document[] | null = this.getDocumentsByStatus("ASKED");
|
||||||
@ -67,7 +62,7 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
Êtes-vous vous de vouloir supprimer la demande de document ?
|
Êtes-vous vous de vouloir supprimer la demande de document ?
|
||||||
</Confirm>
|
</Confirm>
|
||||||
|
|
||||||
<div className={classes["header"]} onClick={this.toggleOpen}>
|
<div className={classes["header"]} onClick={this.changeUserFolder}>
|
||||||
<UserFolderHeader
|
<UserFolderHeader
|
||||||
customer={this.props.customer}
|
customer={this.props.customer}
|
||||||
folder={this.props.folder}
|
folder={this.props.folder}
|
||||||
@ -77,12 +72,12 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
src={ChevronIcon}
|
src={ChevronIcon}
|
||||||
alt="chevron open close"
|
alt="chevron open close"
|
||||||
className={classNames(classes["chevron-icon"], this.props.isOpened && classes["open"])}
|
className={classNames(classes["chevron-icon"], this.props.isOpened && classes["open"])}
|
||||||
onClick={this.toggleOpen}
|
onClick={this.changeUserFolder}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{this.props.isOpened && (
|
{this.props.isOpened && (
|
||||||
<div className={classes["container"]} data-will-close={this.state.willClose.toString()} ref={this.rootRefElement}>
|
<div className={classes["container"]} ref={this.rootRefElement}>
|
||||||
<QuantityProgressBar
|
<QuantityProgressBar
|
||||||
title="Complétion du dossier client"
|
title="Complétion du dossier client"
|
||||||
total={100}
|
total={100}
|
||||||
@ -123,17 +118,8 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
|
|
||||||
public override componentDidUpdate(prevProps: IProps): void {
|
public override componentDidUpdate(prevProps: IProps): void {
|
||||||
this.rootRefElement.current?.style.setProperty("--animation-delay", this.props.animationDelay!.toString().concat("ms"));
|
this.rootRefElement.current?.style.setProperty("--animation-delay", this.props.animationDelay!.toString().concat("ms"));
|
||||||
|
|
||||||
if(prevProps.isOpened !== this.props.isOpened) {
|
|
||||||
if(this.props.isOpened) {
|
|
||||||
this.openComponent();
|
|
||||||
}else{
|
|
||||||
this.closeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private calculateDocumentsPercentageProgress(): number {
|
private calculateDocumentsPercentageProgress(): number {
|
||||||
if (!this.props.customer.documents) return 0;
|
if (!this.props.customer.documents) return 0;
|
||||||
const totalDocuments: number = this.props.customer.documents.length;
|
const totalDocuments: number = this.props.customer.documents.length;
|
||||||
@ -165,27 +151,9 @@ export default class UserFolder extends React.Component<IProps, IState> {
|
|||||||
// return this.props.customer.documents.filter((document) => !documentToExclude.includes(document));
|
// return this.props.customer.documents.filter((document) => !documentToExclude.includes(document));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
private toggleOpen(): void {
|
|
||||||
if (this.props.isOpened) {
|
|
||||||
this.closeComponent();
|
|
||||||
} else {
|
|
||||||
this.openComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private openComponent(): void {
|
private changeUserFolder(){
|
||||||
this.props.onOpen(this.props.folder.uid!);
|
this.props.onChange(this.props.customer.uid!);
|
||||||
}
|
|
||||||
|
|
||||||
private closeComponent(): void {
|
|
||||||
if (this.state.willClose) return;
|
|
||||||
this.setState({ willClose: true });
|
|
||||||
window.setTimeout(() => {
|
|
||||||
this.props.onClose();
|
|
||||||
this.setState({
|
|
||||||
willClose: false,
|
|
||||||
});
|
|
||||||
}, this.props.animationDelay);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private openDeletionModal(uid?: string): void {
|
private openDeletionModal(uid?: string): void {
|
||||||
|
@ -23,8 +23,7 @@ export default class ClientSection extends React.Component<IProps, IState> {
|
|||||||
openedCustomer: "",
|
openedCustomer: "",
|
||||||
};
|
};
|
||||||
|
|
||||||
this.selectUserFolder = this.selectUserFolder.bind(this);
|
this.changeUserFolder = this.changeUserFolder.bind(this);
|
||||||
this.closeUserFolder = this.closeUserFolder.bind(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override render(): JSX.Element {
|
public override render(): JSX.Element {
|
||||||
@ -63,15 +62,13 @@ export default class ClientSection extends React.Component<IProps, IState> {
|
|||||||
private renderCustomerFolders() {
|
private renderCustomerFolders() {
|
||||||
const output = this.props.folder.office_folder_has_customers?.map((folderHasCustomer, index) => {
|
const output = this.props.folder.office_folder_has_customers?.map((folderHasCustomer, index) => {
|
||||||
if (!folderHasCustomer.customer) return null;
|
if (!folderHasCustomer.customer) return null;
|
||||||
// TODO : Les documents ASKED fonctionne mais les autres documents ne doivcent etre seulement ceux qui correspondent au folder
|
|
||||||
return (
|
return (
|
||||||
<UserFolder
|
<UserFolder
|
||||||
folder={this.props.folder}
|
folder={this.props.folder}
|
||||||
customer={folderHasCustomer.customer}
|
customer={folderHasCustomer.customer}
|
||||||
key={this.props.folder.uid}
|
key={folderHasCustomer.customer.uid}
|
||||||
isOpened={this.state.openedCustomer === this.props.folder.uid}
|
isOpened={this.state.openedCustomer === folderHasCustomer.customer.uid}
|
||||||
onOpen={this.selectUserFolder}
|
onChange={this.changeUserFolder}
|
||||||
onClose={this.closeUserFolder}
|
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -79,15 +76,10 @@ export default class ClientSection extends React.Component<IProps, IState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private closeUserFolder() {
|
private changeUserFolder(uid: string) {
|
||||||
|
console.log("changeUserFolder", uid)
|
||||||
this.setState({
|
this.setState({
|
||||||
openedCustomer: "",
|
openedCustomer: uid === this.state.openedCustomer ? "" : uid,
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private selectUserFolder(index: string) {
|
|
||||||
this.setState({
|
|
||||||
openedCustomer: index,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user