Browse Source

fix(admin-ui): Fix error updating PaymentMethod config parameters

Fixes #345
Michael Bromley 5 years ago
parent
commit
b4061a5266

+ 1 - 1
packages/admin-ui/src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.html

@@ -46,7 +46,7 @@
         </clr-toggle-wrapper>
     </vdr-form-field>
 
-    <div class="clr-row" formGroupName="configArgs" *ngIf="(entity$ | async)?.configArgs?.length">
+    <div class="clr-row" formGroupName="configArgs" *ngIf="(entity$ | async)?.configArgs?.length && configArgsIsPopulated()">
         <div class="clr-col">
             <label>{{ 'settings.payment-method-config-options' | translate }}</label>
             <section class="form-block" *ngFor="let arg of (entity$ | async)?.configArgs">

+ 9 - 0
packages/admin-ui/src/lib/settings/src/components/payment-method-detail/payment-method-detail.component.ts

@@ -49,6 +49,14 @@ export class PaymentMethodDetailComponent extends BaseDetailComponent<PaymentMet
         return arg.type as any;
     }
 
+    configArgsIsPopulated(): boolean {
+        const configArgsGroup = this.detailForm.get('configArgs') as FormGroup | undefined;
+        if (!configArgsGroup) {
+            return false;
+        }
+        return 0 < Object.keys(configArgsGroup.controls).length;
+    }
+
     save() {
         this.entity$
             .pipe(
@@ -100,6 +108,7 @@ export class PaymentMethodDetailComponent extends BaseDetailComponent<PaymentMet
                 }
             }
         }
+        this.changeDetector.markForCheck();
     }
 
     private parseArgValue(arg: ConfigArg): string | number | boolean {