diff --git a/src/app/app.component.html b/src/app/app.component.html
index 90c6b64..88ddf62 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1 +1,5 @@
-
\ No newline at end of file
+@if (1) {
+
+} @else {
+ redirectLogin();
+}
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 3bdc89c..795907d 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,8 +1,5 @@
-import { Component } from '@angular/core';
-import { RouterOutlet } from '@angular/router';
-import {LoginFormComponent} from "./pages/login-form/login-form.component";
-import {MessagesInfoUser} from "./pages/messages/messages-infouser/messages-infouser.component";
-import {MessagesMain} from "./pages/messages/messages-main/messages-main.component";
+import {Component, inject} from '@angular/core';
+import {Router, RouterOutlet} from '@angular/router';
@Component({
@@ -12,5 +9,12 @@ import {MessagesMain} from "./pages/messages/messages-main/messages-main.compone
styleUrl: './app.component.css'
})
export class AppComponent {
+
+ private router = inject(Router)
+
+ redirectLogin() {
+ this.router.navigate(['/login']);
+ }
+
title = 'Knots-Front';
}
diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts
index 7e15a08..be2b901 100644
--- a/src/app/app.routes.ts
+++ b/src/app/app.routes.ts
@@ -34,4 +34,9 @@ export const routes: Routes = [
path:'login',
loadComponent: () => import('./pages/login-form/login-form.component').then(x => x.LoginFormComponent)
},
+
+ {
+ path:'register',
+ loadComponent: () => import('./pages/register-form/register-form.component').then(x => x.RegisterFormComponent)
+ },
];
\ No newline at end of file
diff --git a/src/app/login.service.ts b/src/app/login.service.ts
new file mode 100644
index 0000000..db8c4f6
--- /dev/null
+++ b/src/app/login.service.ts
@@ -0,0 +1,41 @@
+import { Injectable } from '@angular/core';
+import {tap} from "rxjs";
+
+@Injectable({
+ providedIn: 'root'
+})
+export class LoginService {
+
+ /*
+ login(credentials: { name: string; password: string }) {
+ return this.http.post(`${this.apiUrl}/login`, credentials).pipe(
+ tap(response => this.setSession(response.token))
+ );
+ }
+ */
+
+ /*
+ refreshToken(): Observable {
+ this.isRefreshing = true;
+
+ return this.http.post(`${this.apiUrl}/refresh`, {})
+ .pipe(
+ tap(response => {
+ this.setSession(response.token);
+ }),
+ finalize(() => {
+ this.isRefreshing = false;
+ })
+ );
+ }
+ */
+
+ /*
+ logout(){
+ return localStorage.removeItem('token');
+ this.currentUser.set(null);
+ this.router.navigate(['/login']);
+ }
+ */
+
+}
diff --git a/src/app/pages/login-form/login-form.component.ts b/src/app/pages/login-form/login-form.component.ts
index a7d95d1..4275d03 100644
--- a/src/app/pages/login-form/login-form.component.ts
+++ b/src/app/pages/login-form/login-form.component.ts
@@ -1,17 +1,69 @@
-import { Component } from '@angular/core';
+import {Component, inject} from '@angular/core';
import {
IonButton,
IonCard,
IonCardContent,
IonCardHeader,
- IonCardSubtitle,
IonCardTitle,
} from '@ionic/angular/standalone';
+import {CommonModule} from "@angular/common";
+import {FormBuilder, ReactiveFormsModule, Validators} from "@angular/forms";
+import {Router} from "@angular/router";
+import {LoginService} from "../../login.service";
@Component({
selector: 'login-form',
templateUrl: 'login-form.component.html',
styleUrls: ['login-form.component.css'],
- imports: [IonButton, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle],
+ imports: [IonButton, IonCard, IonCardContent, IonCardHeader, IonCardTitle, CommonModule, ReactiveFormsModule,],
})
-export class LoginFormComponent {}
\ No newline at end of file
+export class LoginFormComponent {
+
+ private fb = inject(FormBuilder);
+ private loginService = inject(LoginService);
+ private router = inject(Router);
+
+ isLoading = false;
+
+ loginForm = this.fb.group({
+ name: ['', [Validators.required]],
+ password: ['', [Validators.required]]
+ });
+
+ submitForm(): void {
+ if (this.loginForm.valid) {
+ this.isLoading = true;
+
+ const request = {
+ name: this.loginForm.value.name!,
+ password: this.loginForm.value.password!
+ };
+
+ /*this.authService.login(request).subscribe({
+ next: () => {
+ this.isLoading = false;
+ this.notification.success('Succès', 'Connexion réussie !');
+
+ this.router.navigate(['/main/discussions']);
+ },
+ error: (err) => {
+ this.isLoading = false;
+ // Gestion des erreurs (inchangée)
+ if (err.status === 401) {
+ this.notification.error('Erreur', 'Identifiant ou mot de passe incorrect.');
+ } else {
+ this.notification.error('Erreur', 'Impossible de contacter le serveur.');
+ }
+ }
+ });
+ } else {
+ // Affiche les erreurs de validation visuelles
+ Object.values(this.loginForm.controls).forEach(control => {
+ if (control.invalid) {
+ control.markAsDirty();
+ control.updateValueAndValidity({ onlySelf: true });
+ }
+ });*/
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/app/pages/register-form/register-form.component.css b/src/app/pages/register-form/register-form.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/pages/register-form/register-form.component.html b/src/app/pages/register-form/register-form.component.html
new file mode 100644
index 0000000..e6b0721
--- /dev/null
+++ b/src/app/pages/register-form/register-form.component.html
@@ -0,0 +1,22 @@
+
+
+ Inscrivez-vous à Knots !
+ Commencez à nouer des liens !
+
+
+
+ Nom d'utilisateur
+
+
+
+ Mot de Passe
+
+
+
+ Confirmez votre mot de passe
+
+
+
+
+ Créer son compte
+
\ No newline at end of file
diff --git a/src/app/pages/register-form/register-form.component.ts b/src/app/pages/register-form/register-form.component.ts
new file mode 100644
index 0000000..f1006e0
--- /dev/null
+++ b/src/app/pages/register-form/register-form.component.ts
@@ -0,0 +1,26 @@
+import { Component } from '@angular/core';
+import {
+ IonButton,
+ IonCard,
+ IonCardContent,
+ IonCardHeader,
+ IonCardSubtitle,
+ IonCardTitle
+} from "@ionic/angular/standalone";
+
+@Component({
+ selector: 'app-register-form',
+ imports: [
+ IonButton,
+ IonCard,
+ IonCardContent,
+ IonCardHeader,
+ IonCardTitle,
+ IonCardSubtitle
+ ],
+ templateUrl: './register-form.component.html',
+ styleUrl: './register-form.component.css'
+})
+export class RegisterFormComponent {
+
+}