diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html index d559258..15ab398 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.html @@ -81,3 +81,4 @@ + diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.ts index 3aec4b8..d3a6f02 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.component.ts @@ -1,6 +1,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { AbstractControl, FormControl, FormGroup } from '@angular/forms'; import { EmployeeInviteResponse } from '@msfa-models/api/employee-invite.response.model'; +import { CustomError } from '@msfa-models/error/custom-error'; import { EmployeeService } from '@msfa-services/api/employee.service'; import { CommaSeparatedEmailValidator } from '@msfa-utils/validators/email.validator'; import { RequiredValidator } from '@msfa-utils/validators/required.validator'; @@ -18,6 +19,7 @@ export class EmployeeInviteComponent { }); private _lastInvites$ = new BehaviorSubject(null); lastInvites$: Observable = this._lastInvites$.asObservable(); + submitIsLoading$ = new BehaviorSubject(false); constructor(private employeeService: EmployeeService) {} @@ -82,8 +84,10 @@ export class EmployeeInviteComponent { } submitForm(): void { + this.submitIsLoading$.next(true); this._lastInvites$.next(null); if (this.formGroup.invalid) { + this.submitIsLoading$.next(false); this.emailsControl.markAsDirty(); this.emailsControl.markAsTouched(); return; @@ -91,9 +95,14 @@ export class EmployeeInviteComponent { const post = this.employeeService.postEmployeeInvitation(this.emailsControlValueAsArray).subscribe({ next: data => { + this.submitIsLoading$.next(false); this._lastInvites$.next(data); this.formGroup.reset(); }, + error: error => { + this.submitIsLoading$.next(false); + throw new CustomError(error); + }, complete: () => { post.unsubscribe(); }, diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.module.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.module.ts index b414464..2aa5189 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-invite/employee-invite.module.ts @@ -5,6 +5,7 @@ import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { BackLinkModule } from '@msfa-shared/components/back-link/back-link.module'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; +import { LoaderModule } from '@msfa-shared/components/loader/loader.module'; import { EmployeeInviteComponent } from './employee-invite.component'; @NgModule({ @@ -17,6 +18,7 @@ import { EmployeeInviteComponent } from './employee-invite.component'; BackLinkModule, ReactiveFormsModule, DigiNgFormTextareaModule, + LoaderModule ], }) export class EmployeeInviteModule {}