Files
codiki-hexagonal/frontend/src/app/components/publications-search-bar/publications-search-bar.component.ts
2025-12-30 17:18:50 +01:00

36 lines
1.2 KiB
TypeScript

import { Component, inject } from "@angular/core";
import { FormBuilder, FormControl, ReactiveFormsModule, Validators } from "@angular/forms";
import { MatRippleModule } from "@angular/material/core";
import { MatIconModule } from "@angular/material/icon";
import { Router } from "@angular/router";
@Component({
selector: 'app-publications-search-bar',
templateUrl: './publications-search-bar.component.html',
styleUrl: './publications-search-bar.component.scss',
imports: [
MatIconModule,
MatRippleModule,
ReactiveFormsModule
],
providers: []
})
export class PublicationsSearchBarComponent {
private formBuilder = inject(FormBuilder);
private router = inject(Router);
formGroup = this.formBuilder.group({
criteria: new FormControl<string | undefined>('', [Validators.required])
});
searchPublications(): void {
const query = this.formGroup.controls.criteria.value
if (query?.trim()) {
const queryParams = { 'query' : this.formGroup.controls.criteria.value ?? '' }
this.router.navigate(['/publications'], { queryParams });
} else {
this.router.navigate(['/home']);
}
}
}