diff --git a/src/app/components/login/login.component.html b/src/app/components/login/login.component.html index c444e95..4f9eea3 100644 --- a/src/app/components/login/login.component.html +++ b/src/app/components/login/login.component.html @@ -41,6 +41,7 @@ id="password" name="password" #password="ngModel" + [type]="loginSerivce.passwordFieldType" placeholder="Password" class="custom-input" [(ngModel)]="loginData.password" @@ -53,7 +54,11 @@ alt="" /> } @else { - + }
@if (!password.valid && password.touched) { diff --git a/src/app/components/login/login.component.scss b/src/app/components/login/login.component.scss index 08390b1..09caef3 100644 --- a/src/app/components/login/login.component.scss +++ b/src/app/components/login/login.component.scss @@ -57,6 +57,11 @@ section { top: 88px; } } + .passwordEye { + position: absolute; + right: -5px; + top: 88px; + } .custom-input:focus + .custom-img { display: none; } diff --git a/src/app/components/login/register/register.component.html b/src/app/components/login/register/register.component.html index 0c8849f..94b088e 100644 --- a/src/app/components/login/register/register.component.html +++ b/src/app/components/login/register/register.component.html @@ -68,6 +68,7 @@ id="password" name="password" #password="ngModel" + [type]="loginSerivce.passwordFieldType" placeholder="Password" class="custom-input" [(ngModel)]="registerData.password" @@ -80,7 +81,11 @@ alt="" /> } @else { - + }
@if (!password.valid && password.touched) { @@ -94,6 +99,7 @@ id="passwordConfirm" name="passwordConfirm" #passwordConfirm="ngModel" + [type]="loginSerivce.passwordFieldType" placeholder="Confirm Password" class="custom-input" [(ngModel)]="registerData.passwordConfirm" @@ -106,7 +112,11 @@ alt="" /> } @else { - + }
@if (!passwordConfirm.valid && passwordConfirm.touched) { diff --git a/src/app/components/login/register/register.component.scss b/src/app/components/login/register/register.component.scss index 69e5e51..a319a3e 100644 --- a/src/app/components/login/register/register.component.scss +++ b/src/app/components/login/register/register.component.scss @@ -75,10 +75,20 @@ section { } &:nth-child(11) { position: absolute; - right: 0; + right: 0px; top: 262px; } } + .passwordEye { + position: absolute; + right: -5px; + top: 176px; + } + .passwordEyeConfirm { + position: absolute; + right: -5px; + top: 262px; + } .custom-input:focus + .custom-img { display: none; } diff --git a/src/app/services/login.service.ts b/src/app/services/login.service.ts index e7cbc33..ebade29 100644 --- a/src/app/services/login.service.ts +++ b/src/app/services/login.service.ts @@ -24,6 +24,8 @@ import { User } from '../interfaces/user.interface'; }) export class LoginService { firestore: Firestore = inject(Firestore); + passwordFieldType: string = 'password'; + passwordIcon: string = './assets/img/login/close-eye.svg'; errorCode: string = ''; constructor( @@ -176,6 +178,19 @@ export class LoginService { window.location.reload(); } + togglePasswordVisibility() { + this.passwordFieldType = + this.passwordFieldType === 'password' ? 'text' : 'password'; + this.toggleIcon(); + } + + toggleIcon() { + this.passwordIcon = + this.passwordIcon === './../../../assets/img/login/close-eye.svg' + ? './../../../assets/img/login/open-eye.svg' + : './../../../assets/img/login/close-eye.svg'; + } + getUserIdInLocalStorage(userId: string) { localStorage.setItem('currentUserJOIN', JSON.stringify(userId)); } diff --git a/src/assets/img/login/close-eye.svg b/src/assets/img/login/close-eye.svg new file mode 100644 index 0000000..d4a6ec4 --- /dev/null +++ b/src/assets/img/login/close-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/login/open-eye.svg b/src/assets/img/login/open-eye.svg new file mode 100644 index 0000000..d136657 --- /dev/null +++ b/src/assets/img/login/open-eye.svg @@ -0,0 +1 @@ + \ No newline at end of file