Skip to content

Commit 967d0d0

Browse files
committed
Fix login, sign-up, password lost forms
1 parent e27bdcb commit 967d0d0

12 files changed

+77
-48
lines changed

src/app/content/user/user-login.component.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ <h1>{{ 'user.login.title' | transloco }}</h1>
1212
</mg-input>
1313
</div>
1414

15-
@if (showError) {
16-
<div class="list-error">
17-
{{ showError }}
18-
</div>
15+
@let error = showError();
16+
@if (error) {
17+
<mg-message type="error">
18+
<mg-message-block>
19+
{{ error }}
20+
</mg-message-block>
21+
</mg-message>
1922
}
2023

2124
<div class="buttons">

src/app/content/user/user-login.component.scss

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,6 @@
2929
}
3030
}
3131

32-
.error {
33-
padding-top: 15px;
34-
color: var(--alert-color);
35-
text-align: center;
36-
}
37-
38-
:host .list-error {
39-
margin: 30px;
40-
padding: 15px 40px;
32+
mg-message {
33+
margin-top: 15px;
4134
}

src/app/content/user/user-login.component.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
import { Component, OnDestroy, OnInit, booleanAttribute, inject, input } from '@angular/core';
1+
import { Component, OnDestroy, OnInit, booleanAttribute, inject, input, signal } from '@angular/core';
22
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
33
import { Router, RouterLink } from '@angular/router';
44

55
import {
66
FormBuilderExtended,
7+
MagmaBlockMessage,
78
MagmaInput,
89
MagmaInputElement,
910
MagmaInputPassword,
1011
MagmaInputText,
1112
MagmaLoader,
13+
MagmaMessage,
1214
MagmaSpinner,
1315
} from '@ikilote/magma';
1416
import { TranslocoPipe, TranslocoService } from '@jsverse/transloco';
@@ -32,6 +34,8 @@ import { environment } from 'src/environments/environment';
3234
MagmaInputText,
3335
MagmaLoader,
3436
MagmaSpinner,
37+
MagmaMessage,
38+
MagmaBlockMessage,
3539
],
3640
})
3741
export class UserLoginComponent implements OnInit, OnDestroy {
@@ -43,7 +47,7 @@ export class UserLoginComponent implements OnInit, OnDestroy {
4347

4448
private listener = Subscriptions.instance();
4549

46-
showError = '';
50+
showError = signal('');
4751
loader = false;
4852

4953
readonly popup = input<boolean, any>(false, { transform: booleanAttribute });
@@ -111,7 +115,7 @@ export class UserLoginComponent implements OnInit, OnDestroy {
111115
}
112116
})
113117
.catch(e => {
114-
this.showError = e;
118+
this.showError.set(this.translate.translate('error.username.or.email'));
115119
})
116120
.finally(() => {
117121
this.loader = false;

src/app/content/user/user-profile.errors.scss

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
}
2020
}
2121

22-
.alert {
23-
margin: auto;
24-
border: 1px solid var(--alert-color);
25-
width: 80%;
26-
color: var(--alert-color);
22+
mg-message {
23+
margin-top: 15px;
2724
}

src/app/content/user/user-pw-lost.component.html

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,22 @@ <h1>{{ 'user.password.lost.title' | transloco }}</h1>
1212
</div>
1313

1414
@if (showError) {
15-
<div class="list-error">
16-
{{ showError }}
17-
</div>
15+
<mg-message type="error">
16+
<mg-message-block>
17+
{{ showError }}
18+
</mg-message-block>
19+
</mg-message>
1820
}
1921
<div class="button">
2022
<button (click)="submit()">{{ 'user.password.lost.action' | transloco }}</button>
2123
</div>
2224
</form>
2325
} @else {
24-
<div>
25-
{{ 'user.password.lost.send' | transloco }}
26-
</div>
26+
<mg-message type="success">
27+
<mg-message-block>
28+
{{ 'user.password.lost.send' | transloco }}
29+
</mg-message-block>
30+
</mg-message>
2731
}
2832

2933
<div class="links">

src/app/content/user/user-pw-lost.component.scss

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
text-align: center;
2424
}
2525

26-
.error {
27-
padding-top: 15px;
28-
color: var(--alert-color);
29-
text-align: center;
26+
mg-message {
27+
margin-top: 15px;
3028
}

src/app/content/user/user-pw-lost.component.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@ import { Component, OnDestroy, inject } from '@angular/core';
22
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
33
import { Router, RouterLink } from '@angular/router';
44

5-
import { FormBuilderExtended, MagmaInput, MagmaInputElement, MagmaInputText, testEmail } from '@ikilote/magma';
5+
import {
6+
FormBuilderExtended,
7+
MagmaBlockMessage,
8+
MagmaInput,
9+
MagmaInputElement,
10+
MagmaInputText,
11+
MagmaMessage,
12+
testEmail,
13+
} from '@ikilote/magma';
614
import { TranslocoPipe, TranslocoService } from '@jsverse/transloco';
715

816
import { APIUserService } from 'src/app/services/api.user.service';
@@ -13,7 +21,16 @@ import { Subscriptions } from 'src/app/tools/subscriptions';
1321
selector: 'user-pw-lost',
1422
templateUrl: './user-pw-lost.component.html',
1523
styleUrls: ['./user-pw-lost.component.scss'],
16-
imports: [RouterLink, TranslocoPipe, ReactiveFormsModule, MagmaInput, MagmaInputElement, MagmaInputText],
24+
imports: [
25+
RouterLink,
26+
TranslocoPipe,
27+
ReactiveFormsModule,
28+
MagmaInput,
29+
MagmaInputElement,
30+
MagmaInputText,
31+
MagmaMessage,
32+
MagmaBlockMessage,
33+
],
1734
})
1835
export class UserPwLostComponent implements OnDestroy {
1936
private readonly router = inject(Router);
@@ -22,7 +39,6 @@ export class UserPwLostComponent implements OnDestroy {
2239
private readonly global = inject(GlobalService);
2340
private readonly fbe = inject(FormBuilderExtended);
2441

25-
email = '';
2642
showError = '';
2743
valide = false;
2844

@@ -70,15 +86,16 @@ export class UserPwLostComponent implements OnDestroy {
7086

7187
this.fbe.validateForm(this.form);
7288
if (this.form.valid) {
73-
if (this.email.trim() === '') {
89+
const email = this.form.value.email;
90+
if (!email || email?.trim() === '') {
7491
this.showError = this.translate.translate('error.api-code.1020');
75-
} else if (!testEmail(this.email)) {
92+
} else if (!testEmail(email)) {
7693
this.showError = this.translate.translate('error.email.invalid');
7794
}
7895

7996
if (!this.showError.length) {
8097
this.userService
81-
.passwordLost(this.email)
98+
.passwordLost(email!)
8299
.then(() => {
83100
this.valide = true;
84101
})

src/app/content/user/user-signup.component.html

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,13 @@ <h1>{{ 'user.signup.title' | transloco }}</h1>
4848
</div>
4949

5050
@if (showError.length) {
51-
<ul class="list-error">
52-
@for (error of showError; track error) {
53-
<li>{{ error }}</li>
54-
}
55-
</ul>
51+
<mg-message type="error">
52+
<ul>
53+
@for (error of showError; track error) {
54+
<li>{{ error }}</li>
55+
}
56+
</ul>
57+
</mg-message>
5658
}
5759

5860
<div class="button">

src/app/content/user/user-signup.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
MagmaInputElement,
88
MagmaInputPassword,
99
MagmaInputText,
10+
MagmaMessage,
1011
MagmaMessages,
1112
testEmail,
1213
} from '@ikilote/magma';
@@ -32,6 +33,7 @@ import { environment } from 'src/environments/environment';
3233
MagmaInputElement,
3334
MagmaInputText,
3435
MagmaInputPassword,
36+
MagmaMessage,
3537
],
3638
})
3739
export class UserSignupComponent implements OnDestroy {

src/assets/i18n/en.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,8 +1114,11 @@
11141114
"category.empty": "Category cannot be empty.",
11151115
"banner.empty": "Banner cannot be empty."
11161116
},
1117-
"username.exist": "This username already exists.",
1118-
"username.yours": "This username is already yours.",
1117+
"username": {
1118+
"or.email": "Username or email is invalid.",
1119+
"exist": "This username already exists.",
1120+
"yours": "This username is already yours."
1121+
},
11191122
"email": {
11201123
"exist": "This email has already been used.",
11211124
"invalid": "The email is invalid.",

0 commit comments

Comments
 (0)