diff --git a/src/app/features/issue/issue.service.ts b/src/app/features/issue/issue.service.ts index 9264c3f3e1..487837dcf7 100644 --- a/src/app/features/issue/issue.service.ts +++ b/src/app/features/issue/issue.service.ts @@ -120,6 +120,10 @@ export class IssueService { issueProviderId: string, issueProviderKey: IssueProviderKey, ): Observable { + // check if text is more than just special chars + if (searchTerm.replace(/[\W_]+/g, '').trim().length === 0) { + return of([]); + } return this.ISSUE_SERVICE_MAP[issueProviderKey].searchIssues$( searchTerm, issueProviderId, diff --git a/src/app/features/issue/providers/github/github-api.service.ts b/src/app/features/issue/providers/github/github-api.service.ts index 65959d69b0..83fe22e73b 100644 --- a/src/app/features/issue/providers/github/github-api.service.ts +++ b/src/app/features/issue/providers/github/github-api.service.ts @@ -88,7 +88,7 @@ export class GithubApiService { return this._sendRequest$( { - url: `${BASE}search/issues?q=${encodeURI(searchText + repoQuery)}`, + url: `${BASE}search/issues?q=${encodeURIComponent(searchText.replace('#', '') + repoQuery)}`, }, cfg, ).pipe( diff --git a/src/app/features/tasks/add-task-bar/add-task-bar.service.ts b/src/app/features/tasks/add-task-bar/add-task-bar.service.ts index 6debf7b286..9af8258501 100644 --- a/src/app/features/tasks/add-task-bar/add-task-bar.service.ts +++ b/src/app/features/tasks/add-task-bar/add-task-bar.service.ts @@ -1,4 +1,4 @@ -import { Injectable, WritableSignal, inject } from '@angular/core'; +import { inject, Injectable, WritableSignal } from '@angular/core'; import { combineLatest, forkJoin, from, Observable, of } from 'rxjs'; import { catchError, @@ -59,29 +59,34 @@ export class AddTaskBarService { withLatestFrom(this._workContextService.activeWorkContextTypeAndId$), switchMap(([searchTerm, { activeType, activeId }]) => isSearchIssueProviders$.pipe( - switchMap((isIssueSearch) => - isIssueSearch - ? this._issueService.searchAllEnabledIssueProviders$(searchTerm).pipe( - map((issueSuggestions) => - issueSuggestions.map( - (issueSuggestion) => - ({ - title: issueSuggestion.title, - titleHighlighted: issueSuggestion.titleHighlighted, - issueData: issueSuggestion.issueData, - issueType: issueSuggestion.issueType, - issueProviderId: issueSuggestion.issueProviderId, - }) as AddTaskSuggestion, - ), + switchMap((isIssueSearch) => { + if (isIssueSearch) { + if (!searchTerm?.length) { + return of([]); + } + return this._issueService.searchAllEnabledIssueProviders$(searchTerm).pipe( + map((issueSuggestions) => + issueSuggestions.map( + (issueSuggestion) => + ({ + title: issueSuggestion.title, + titleHighlighted: issueSuggestion.titleHighlighted, + issueData: issueSuggestion.issueData, + issueType: issueSuggestion.issueType, + issueProviderId: issueSuggestion.issueProviderId, + }) as AddTaskSuggestion, ), - catchError(() => { - return of([]); - }), - ) - : activeType === WorkContextType.PROJECT - ? this._searchForProject$(searchTerm, activeId) - : this._searchForTag$(searchTerm, activeId), - ), + ), + catchError(() => { + return of([]); + }), + ); + } + + return activeType === WorkContextType.PROJECT + ? this._searchForProject$(searchTerm, activeId) + : this._searchForTag$(searchTerm, activeId); + }), ), ), tap(() => {