mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-04-12 03:21:37 +00:00
112 lines
3.3 KiB
TypeScript
112 lines
3.3 KiB
TypeScript
import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
import { UntypedFormBuilder, UntypedFormGroup, NgForm, Validators } from '@angular/forms';
|
|
import { finalize } from 'rxjs';
|
|
import { fuseAnimations } from '@fuse/animations';
|
|
import { FuseValidators } from '@fuse/validators';
|
|
import { FuseAlertType } from '@fuse/components/alert';
|
|
import { AuthService } from 'app/core/auth/auth.service';
|
|
|
|
@Component({
|
|
selector : 'auth-reset-password',
|
|
templateUrl : './reset-password.component.html',
|
|
encapsulation: ViewEncapsulation.None,
|
|
animations : fuseAnimations
|
|
})
|
|
export class AuthResetPasswordComponent implements OnInit
|
|
{
|
|
@ViewChild('resetPasswordNgForm') resetPasswordNgForm: NgForm;
|
|
|
|
alert: { type: FuseAlertType; message: string } = {
|
|
type : 'success',
|
|
message: ''
|
|
};
|
|
resetPasswordForm: UntypedFormGroup;
|
|
showAlert: boolean = false;
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
constructor(
|
|
private _authService: AuthService,
|
|
private _formBuilder: UntypedFormBuilder
|
|
)
|
|
{
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------------------------------
|
|
// @ Lifecycle hooks
|
|
// -----------------------------------------------------------------------------------------------------
|
|
|
|
/**
|
|
* On init
|
|
*/
|
|
ngOnInit(): void
|
|
{
|
|
// Create the form
|
|
this.resetPasswordForm = this._formBuilder.group({
|
|
password : ['', Validators.required],
|
|
passwordConfirm: ['', Validators.required]
|
|
},
|
|
{
|
|
validators: FuseValidators.mustMatch('password', 'passwordConfirm')
|
|
}
|
|
);
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------------------------------
|
|
// @ Public methods
|
|
// -----------------------------------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Reset password
|
|
*/
|
|
resetPassword(): void
|
|
{
|
|
// Return if the form is invalid
|
|
if ( this.resetPasswordForm.invalid )
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Disable the form
|
|
this.resetPasswordForm.disable();
|
|
|
|
// Hide the alert
|
|
this.showAlert = false;
|
|
|
|
// Send the request to the server
|
|
this._authService.resetPassword(this.resetPasswordForm.get('password').value)
|
|
.pipe(
|
|
finalize(() => {
|
|
|
|
// Re-enable the form
|
|
this.resetPasswordForm.enable();
|
|
|
|
// Reset the form
|
|
this.resetPasswordNgForm.resetForm();
|
|
|
|
// Show the alert
|
|
this.showAlert = true;
|
|
})
|
|
)
|
|
.subscribe(
|
|
(response) => {
|
|
|
|
// Set the alert
|
|
this.alert = {
|
|
type : 'success',
|
|
message: 'Your password has been reset.'
|
|
};
|
|
},
|
|
(response) => {
|
|
|
|
// Set the alert
|
|
this.alert = {
|
|
type : 'error',
|
|
message: 'Something went wrong, please try again.'
|
|
};
|
|
}
|
|
);
|
|
}
|
|
}
|