mirror of
				https://github.com/richard-loafle/fuse-angular.git
				synced 2025-11-04 01:53:33 +00:00 
			
		
		
		
	(Coming Soon) Simplified the form error messages
This commit is contained in:
		
							parent
							
								
									98297ea787
								
							
						
					
					
						commit
						63bd95ea1e
					
				@ -28,10 +28,11 @@
 | 
			
		||||
                <mat-form-field appearance="outline">
 | 
			
		||||
                    <mat-label>Email</mat-label>
 | 
			
		||||
                    <input matInput formControlName="email">
 | 
			
		||||
                    <mat-error *ngIf="comingSoonFormErrors.email.required">
 | 
			
		||||
                    <mat-error *ngIf="comingSoonForm.get('email').hasError('required')">
 | 
			
		||||
                        Email is required
 | 
			
		||||
                    </mat-error>
 | 
			
		||||
                    <mat-error *ngIf="!comingSoonFormErrors.email.required && comingSoonFormErrors.email.email">
 | 
			
		||||
                    <mat-error *ngIf="!comingSoonForm.get('email').hasError('required') &&
 | 
			
		||||
                                       comingSoonForm.get('email').hasError('email')">
 | 
			
		||||
                        Please enter a valid email address
 | 
			
		||||
                    </mat-error>
 | 
			
		||||
                </mat-form-field>
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,5 @@
 | 
			
		||||
import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
 | 
			
		||||
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
 | 
			
		||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 | 
			
		||||
import { Subject } from 'rxjs';
 | 
			
		||||
import { takeUntil } from 'rxjs/operators';
 | 
			
		||||
 | 
			
		||||
import { FuseConfigService } from '@fuse/services/config.service';
 | 
			
		||||
import { fuseAnimations } from '@fuse/animations';
 | 
			
		||||
@ -13,13 +11,9 @@ import { fuseAnimations } from '@fuse/animations';
 | 
			
		||||
    encapsulation: ViewEncapsulation.None,
 | 
			
		||||
    animations   : fuseAnimations
 | 
			
		||||
})
 | 
			
		||||
export class ComingSoonComponent implements OnInit, OnDestroy
 | 
			
		||||
export class ComingSoonComponent implements OnInit
 | 
			
		||||
{
 | 
			
		||||
    comingSoonForm: FormGroup;
 | 
			
		||||
    comingSoonFormErrors: any;
 | 
			
		||||
 | 
			
		||||
    // Private
 | 
			
		||||
    private _unsubscribeAll: Subject<any>;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Constructor
 | 
			
		||||
@ -49,14 +43,6 @@ export class ComingSoonComponent implements OnInit, OnDestroy
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // Set the defaults
 | 
			
		||||
        this.comingSoonFormErrors = {
 | 
			
		||||
            email: {}
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // Set the private defaults
 | 
			
		||||
        this._unsubscribeAll = new Subject();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // -----------------------------------------------------------------------------------------------------
 | 
			
		||||
@ -71,50 +57,5 @@ export class ComingSoonComponent implements OnInit, OnDestroy
 | 
			
		||||
        this.comingSoonForm = this._formBuilder.group({
 | 
			
		||||
            email: ['', [Validators.required, Validators.email]]
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        this.comingSoonForm.valueChanges
 | 
			
		||||
            .pipe(takeUntil(this._unsubscribeAll))
 | 
			
		||||
            .subscribe(() => {
 | 
			
		||||
                this.onRegisterFormValuesChanged();
 | 
			
		||||
            });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * On destroy
 | 
			
		||||
     */
 | 
			
		||||
    ngOnDestroy(): void
 | 
			
		||||
    {
 | 
			
		||||
        // Unsubscribe from all subscriptions
 | 
			
		||||
        this._unsubscribeAll.next();
 | 
			
		||||
        this._unsubscribeAll.complete();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // -----------------------------------------------------------------------------------------------------
 | 
			
		||||
    // @ Public methods
 | 
			
		||||
    // -----------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * On form values changed
 | 
			
		||||
     */
 | 
			
		||||
    onRegisterFormValuesChanged(): void
 | 
			
		||||
    {
 | 
			
		||||
        for ( const field in this.comingSoonFormErrors )
 | 
			
		||||
        {
 | 
			
		||||
            if ( !this.comingSoonFormErrors.hasOwnProperty(field) )
 | 
			
		||||
            {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Clear previous errors
 | 
			
		||||
            this.comingSoonFormErrors[field] = {};
 | 
			
		||||
 | 
			
		||||
            // Get the control
 | 
			
		||||
            const control = this.comingSoonForm.get(field);
 | 
			
		||||
 | 
			
		||||
            if ( control && control.dirty && !control.valid )
 | 
			
		||||
            {
 | 
			
		||||
                this.comingSoonFormErrors[field] = control.errors;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user