From f1ee80d4c60c6b6d0c89746c3c13731f618c80f2 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 2 Feb 2026 16:33:29 +0200 Subject: [PATCH] fix(search): added empty message for filters --- .../components/generic-filter/generic-filter.component.html | 1 + .../components/generic-filter/generic-filter.component.ts | 6 +++++- src/assets/i18n/en.json | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/shared/components/generic-filter/generic-filter.component.html b/src/app/shared/components/generic-filter/generic-filter.component.html index 25b7844ad..71a47aaa9 100644 --- a/src/app/shared/components/generic-filter/generic-filter.component.html +++ b/src/app/shared/components/generic-filter/generic-filter.component.html @@ -20,6 +20,7 @@ [virtualScrollItemSize]="40" scrollHeight="200px" [autoOptionFocus]="false" + [emptyFilterMessage]="filterMessage() | translate" [loading]="isPaginationLoading() || isSearchLoading()" (onFilter)="onFilterChange($event)" (onChange)="onMultiChange($event)" diff --git a/src/app/shared/components/generic-filter/generic-filter.component.ts b/src/app/shared/components/generic-filter/generic-filter.component.ts index 1a5391a0c..041160d70 100644 --- a/src/app/shared/components/generic-filter/generic-filter.component.ts +++ b/src/app/shared/components/generic-filter/generic-filter.component.ts @@ -1,3 +1,5 @@ +import { TranslatePipe } from '@ngx-translate/core'; + import { MultiSelect, MultiSelectChangeEvent } from 'primeng/multiselect'; import { SelectLazyLoadEvent } from 'primeng/select'; @@ -23,7 +25,7 @@ import { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.comp @Component({ selector: 'osf-generic-filter', - imports: [MultiSelect, FormsModule, LoadingSpinnerComponent], + imports: [MultiSelect, FormsModule, LoadingSpinnerComponent, TranslatePipe], templateUrl: './generic-filter.component.html', styleUrls: ['./generic-filter.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -73,6 +75,8 @@ export class GenericFilterComponent { selectedOptionValues = computed(() => this.selectedOptions().map((option) => option.value)); + filterMessage = computed(() => (this.isSearchLoading() ? 'common.search.loading' : 'common.search.noResultsFound')); + constructor() { effect(() => { const searchResults = this.searchResults(); diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index a2fde1dab..01ef03921 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -84,6 +84,7 @@ "search": { "title": "Search", "noResultsFound": "No results found.", + "loading": "Loading results", "tabs": { "all": "All", "preprints": "Preprints",