From bf1bdd85e608d0381e64235bae14318893abc21f Mon Sep 17 00:00:00 2001
From: Nicolas Rod <Nicolas.Rod@unige.ch>
Date: Fri, 19 Mar 2021 09:24:53 +0100
Subject: [PATCH] fix(DepositFormPresentational): do not multiplicate
 contributors if clicking many times on import metadata button

---
 .../deposit-form/deposit-form.presentational.ts      | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.ts b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.ts
index 4b82e0727..ba6b06ed3 100644
--- a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.ts
+++ b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.ts
@@ -21,10 +21,6 @@ import {
 import {MatDialog} from "@angular/material/dialog";
 import {ActivatedRoute} from "@angular/router";
 import {DepositTableContributorContainer} from "@app/features/deposit/components/containers/deposit-table-contributor/deposit-table-contributor.container";
-import {
-  ValidationStructureDialog,
-  ValidationStructureDialogData,
-} from "@app/features/deposit/components/dialogs/validation-structure/validation-structure.dialog";
 import {DepositFormDescriptionAcademicStructurePresentational} from "@app/features/deposit/components/presentationals/deposit-form-description-academic-structure/deposit-form-description-academic-structure.presentational";
 import {DepositFormDescriptionClassificationPresentational} from "@app/features/deposit/components/presentationals/deposit-form-description-classification/deposit-form-description-classification.presentational";
 import {DepositFormDescriptionCollectionPresentational} from "@app/features/deposit/components/presentationals/deposit-form-description-collection/deposit-form-description-collection.presentational";
@@ -93,16 +89,13 @@ import {
   debounceTime,
   distinctUntilChanged,
   map,
-  take,
   tap,
 } from "rxjs/operators";
 import {
   AbstractPresentational,
   ConfirmDialog,
   ConfirmDialogData,
-  DateUtil,
   isArray,
-  isFalse,
   isNonEmptyArray,
   isNonEmptyString,
   isNotNullNorUndefined,
@@ -555,8 +548,11 @@ export class DepositFormPresentational extends AbstractPresentational implements
     if (!isArray(listContributors)) {
       return;
     }
+
+    const formArray = this.formGroupThirdStepContributors.get(formArrayKey) as FormArray;
+    formArray.clear();
+
     listContributors.forEach(contributor => {
-      const formArray = this.formGroupThirdStepContributors.get(formArrayKey) as FormArray;
       formArray.push(DepositTableContributorContainer.restoreContributorFromAbstractContributor(this._fb, this.formDefinitionDepositFormContributor, contributor));
     });
   }
-- 
GitLab