X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bsearch%2Fsearch.component.ts;h=fcf6ebbec77c40202159962b1580d4e2890a4f10;hb=7337a75bf06dd3ee501b502c1e4251dbf78aa04d;hp=7425b70166a0d3a1b194a4accbce1e4de8981018;hpb=9e8789497377cac5554a622da605f5b89587aa9c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+search/search.component.ts b/client/src/app/+search/search.component.ts index 7425b7016..fcf6ebbec 100644 --- a/client/src/app/+search/search.component.ts +++ b/client/src/app/+search/search.component.ts @@ -73,36 +73,37 @@ export class SearchComponent implements OnInit, OnDestroy { ngOnInit () { this.serverConfig = this.serverService.getHTMLConfig() - this.subActivatedRoute = this.route.queryParams.subscribe( - async queryParams => { - const querySearch = queryParams['search'] - const searchTarget = queryParams['searchTarget'] - - // Search updated, reset filters - if (this.currentSearch !== querySearch || searchTarget !== this.advancedSearch.searchTarget) { - this.resetPagination() - this.advancedSearch.reset() - - this.currentSearch = querySearch || undefined - this.updateTitle() - } + this.subActivatedRoute = this.route.queryParams + .subscribe({ + next: queryParams => { + const querySearch = queryParams['search'] + const searchTarget = queryParams['searchTarget'] - this.advancedSearch = new AdvancedSearch(queryParams) - if (!this.advancedSearch.searchTarget) { - this.advancedSearch.searchTarget = this.getDefaultSearchTarget() - } + // Search updated, reset filters + if (this.currentSearch !== querySearch || searchTarget !== this.advancedSearch.searchTarget) { + this.resetPagination() + this.advancedSearch.reset() - this.error = this.checkFieldsAndGetError() + this.currentSearch = querySearch || undefined + this.updateTitle() + } - // Don't hide filters if we have some of them AND the user just came on the webpage, or we have an error - this.isSearchFilterCollapsed = !this.error && (this.isInitialLoad === false || !this.advancedSearch.containsValues()) - this.isInitialLoad = false + this.advancedSearch = new AdvancedSearch(queryParams) + if (!this.advancedSearch.searchTarget) { + this.advancedSearch.searchTarget = this.getDefaultSearchTarget() + } - this.search() - }, + this.error = this.checkFieldsAndGetError() - err => this.notifier.error(err.text) - ) + // Don't hide filters if we have some of them AND the user just came on the webpage, or we have an error + this.isSearchFilterCollapsed = !this.error && (this.isInitialLoad === false || !this.advancedSearch.containsValues()) + this.isInitialLoad = false + + this.search() + }, + + error: err => this.notifier.error(err.text) + }) this.userService.getAnonymousOrLoggedUser() .subscribe(user => this.userMiniature = user) @@ -140,33 +141,35 @@ export class SearchComponent implements OnInit, OnDestroy { this.getVideoChannelObs(), this.getVideoPlaylistObs(), this.getVideosObs() - ]).subscribe(results => { - for (const result of results) { - this.results = this.results.concat(result.data) - } + ]).subscribe({ + next: results => { + for (const result of results) { + this.results = this.results.concat(result.data) + } - this.pagination.totalItems = results.reduce((p, r) => p += r.total, 0) - this.lastSearchTarget = this.advancedSearch.searchTarget + this.pagination.totalItems = results.reduce((p, r) => p += r.total, 0) + this.lastSearchTarget = this.advancedSearch.searchTarget - this.hasMoreResults = this.results.length < this.pagination.totalItems - }, + this.hasMoreResults = this.results.length < this.pagination.totalItems + }, - err => { - if (this.advancedSearch.searchTarget !== 'search-index') { - this.notifier.error(err.message) - return - } + error: err => { + if (this.advancedSearch.searchTarget !== 'search-index') { + this.notifier.error(err.message) + return + } - this.notifier.error( - $localize`Search index is unavailable. Retrying with instance results instead.`, - $localize`Search error` - ) - this.advancedSearch.searchTarget = 'local' - this.search() - }, + this.notifier.error( + $localize`Search index is unavailable. Retrying with instance results instead.`, + $localize`Search error` + ) + this.advancedSearch.searchTarget = 'local' + this.search() + }, - () => { - this.isSearching = false + complete: () => { + this.isSearching = false + } }) }