From 9b29d7fe5fa36c629b7c586539e55f32ca5a2f65 Mon Sep 17 00:00:00 2001 From: maxime Date: Thu, 9 Apr 2026 11:35:22 +0200 Subject: [PATCH] feat: correction service recherche --- src/app/app.routes.ts | 3 +- src/app/pages/home/home.html | 1 + src/app/pages/home/home.ts | 4 +-- .../pages/search/searchform/searchform.html | 4 +-- src/app/pages/search/searchform/searchform.ts | 28 ++++++++----------- .../search/searchresults/searchresults.html | 3 +- .../search/searchresults/searchresults.ts | 13 ++++++++- src/app/services/search.spec.ts | 16 +++++++++++ src/app/services/search.ts | 10 +++++++ 9 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 src/app/services/search.spec.ts create mode 100644 src/app/services/search.ts diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index c838228..402608f 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -7,8 +7,7 @@ export const routes: Routes = [ {path: 'login', loadComponent: ()=> import("./pages/login/login").then(m =>m.Login)}, {path: 'register', loadComponent: ()=> import("./pages/register/register").then(m =>m.Register)}, {path: 'login', loadComponent: ()=> import("./pages/login/login").then(m =>m.Login)}, - {path: 'potd', loadComponent: ()=> import("./pages/potd/potd").then(m =>m.POTD)}, - {path: 'search', loadComponent: ()=> import("./pages/search/search").then(m =>m.Search)}, + {path: 'potd', loadComponent: ()=> import("./pages/potd/potd").then(m =>m.POTD)}, {path: 'video/:id', loadComponent: ()=> import("./pages/video/video").then(m =>m.Video)}, {path: 'admin',canActivate: [adminGuard], loadChildren: () => import('./pages/admin/admin').then(m => m.Admin), data: { role: 'ADMIN' } }, //version si besoin de multiplier les routes admin diff --git a/src/app/pages/home/home.html b/src/app/pages/home/home.html index e69de29..2729e9d 100644 --- a/src/app/pages/home/home.html +++ b/src/app/pages/home/home.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/pages/home/home.ts b/src/app/pages/home/home.ts index 9a7d89d..0ed4f6b 100644 --- a/src/app/pages/home/home.ts +++ b/src/app/pages/home/home.ts @@ -1,9 +1,9 @@ import { Component } from '@angular/core'; -import { Search } from "../search/search"; +import { Searchresults } from "../search/searchresults/searchresults"; @Component({ selector: 'app-home', - imports: [Search], + imports: [Searchresults], templateUrl: './home.html', styleUrl: './home.css' }) diff --git a/src/app/pages/search/searchform/searchform.html b/src/app/pages/search/searchform/searchform.html index 422e005..020c943 100644 --- a/src/app/pages/search/searchform/searchform.html +++ b/src/app/pages/search/searchform/searchform.html @@ -1,5 +1,5 @@
-
+ - +
\ No newline at end of file diff --git a/src/app/pages/search/searchform/searchform.ts b/src/app/pages/search/searchform/searchform.ts index 126b7f2..3634e55 100644 --- a/src/app/pages/search/searchform/searchform.ts +++ b/src/app/pages/search/searchform/searchform.ts @@ -1,23 +1,24 @@ import { Component, inject, signal } from '@angular/core'; -import { Router } from '@angular/router'; -import { NasaApi } from '../../../interfaces/nasa-api'; import { NAPOD } from '../../../services/napod'; +import { Search } from '../../../services/search'; +import { FormsModule } from '@angular/forms'; @Component({ selector: 'app-searchform', - imports: [], + imports: [FormsModule], templateUrl: './searchform.html', styleUrl: './searchform.css', }) export class Searchform { private readonly nasaApi = inject(NAPOD); - private readonly router = inject(Router) - searchResults = signal(null) - searchString=signal(''); + private readonly searchService = inject(Search); + searchString = this.searchService.searchString; - onSubmit() { - this.nasaApi.searchForVideos(this.searchString()).subscribe({ - next: (data)=>{this.searchResults.set(data); + onSubmit(event: Event) { + event.preventDefault(); // <-- EmpĂȘche le rechargement + console.log("onSubmit appelĂ© !"); // <-- Devrait s'afficher + this.nasaApi.searchForVideos(this.searchService.searchString()).subscribe({ + next: (data)=>{this.searchService.searchResults.set(data); console.log(data.collection); }, error: error =>{console.log(error); @@ -25,14 +26,9 @@ export class Searchform { }) } - onClick(nasaId: string){ - this.router.navigate(['/video/'+nasaId]) - } - updateSearch(event: Event){ - console.log(this.searchString()); const target = event.target as HTMLInputElement; - this.searchString.set(target.value) + this.searchService.searchString.set(target.value) } - + } diff --git a/src/app/pages/search/searchresults/searchresults.html b/src/app/pages/search/searchresults/searchresults.html index df5bcf5..a7992d8 100644 --- a/src/app/pages/search/searchresults/searchresults.html +++ b/src/app/pages/search/searchresults/searchresults.html @@ -28,5 +28,4 @@ - } - \ No newline at end of file + } \ No newline at end of file diff --git a/src/app/pages/search/searchresults/searchresults.ts b/src/app/pages/search/searchresults/searchresults.ts index f50ae11..67807d5 100644 --- a/src/app/pages/search/searchresults/searchresults.ts +++ b/src/app/pages/search/searchresults/searchresults.ts @@ -1,4 +1,6 @@ -import { Component } from '@angular/core'; +import { Component, inject, signal } from '@angular/core'; +import { Router } from '@angular/router'; +import { Search } from '../../../services/search'; @Component({ selector: 'app-searchresults', @@ -7,5 +9,14 @@ import { Component } from '@angular/core'; styleUrl: './searchresults.css', }) export class Searchresults { + private readonly router = inject(Router) + private readonly searchService = inject(Search); + searchResults = this.searchService.searchResults; + searchString = this.searchService.searchString; + + onClick(nasaId: string){ + this.router.navigate(['/video/'+nasaId]) + } + } diff --git a/src/app/services/search.spec.ts b/src/app/services/search.spec.ts new file mode 100644 index 0000000..d1a49cf --- /dev/null +++ b/src/app/services/search.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { Search } from './search'; + +describe('Search', () => { + let service: Search; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(Search); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/search.ts b/src/app/services/search.ts new file mode 100644 index 0000000..55637aa --- /dev/null +++ b/src/app/services/search.ts @@ -0,0 +1,10 @@ +import { Injectable, signal } from '@angular/core'; +import { NasaApi } from '../interfaces/nasa-api'; + +@Injectable({ + providedIn: 'root', +}) +export class Search { + searchResults = signal(null); + searchString = signal(''); +}