added searchform component
This commit is contained in:
parent
d3ccbe208b
commit
595eeb2e09
|
|
@ -0,0 +1,24 @@
|
|||
<div class="flex">
|
||||
<form class="inputSearch flex" (ngSubmit)="onSubmit()">
|
||||
<label class="input">
|
||||
<svg
|
||||
class="h-[1em] opacity-50"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g
|
||||
stroke-linejoin="round"
|
||||
stroke-linecap="round"
|
||||
stroke-width="2.5"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<circle cx="11" cy="11" r="8"></circle>
|
||||
<path d="m21 21-4.3-4.3"></path>
|
||||
</g>
|
||||
</svg>
|
||||
<input type="search" [value]="searchString()" (input)="updateSearch($event)" class="grow" placeholder="Search" />
|
||||
</label>
|
||||
<button class="btn mx-2">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { Searchform } from './searchform';
|
||||
|
||||
describe('Searchform', () => {
|
||||
let component: Searchform;
|
||||
let fixture: ComponentFixture<Searchform>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [Searchform]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(Searchform);
|
||||
component = fixture.componentInstance;
|
||||
await fixture.whenStable();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
import { Component, inject, signal } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { NasaApi } from '../../../interfaces/nasa-api';
|
||||
import { NAPOD } from '../../../services/napod';
|
||||
|
||||
@Component({
|
||||
selector: 'app-searchform',
|
||||
imports: [],
|
||||
templateUrl: './searchform.html',
|
||||
styleUrl: './searchform.css',
|
||||
})
|
||||
export class Searchform {
|
||||
private readonly nasaApi = inject(NAPOD);
|
||||
private readonly router = inject(Router)
|
||||
searchResults = signal<NasaApi | null>(null)
|
||||
searchString=signal('');
|
||||
|
||||
onSubmit() {
|
||||
this.nasaApi.searchForVideos(this.searchString()).subscribe({
|
||||
next: (data)=>{this.searchResults.set(data);
|
||||
console.log(data.collection);
|
||||
},
|
||||
error: error =>{console.log(error);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue