Some checks failed
Build and Deploy Java Gradle Application / build-and-deploy (push) Failing after 53s
37 lines
1.1 KiB
TypeScript
37 lines
1.1 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']);
|
|
}
|
|
}
|
|
}
|