import { Component, OnDestroy, OnInit } from '@angular/core'
import { ActivatedRoute, Router } from '@angular/router'
import { AuthService, Notifier } from '@app/core'
-import { forkJoin, Subscription } from 'rxjs'
+import { forkJoin, of, Subscription } from 'rxjs'
import { SearchService } from '@app/search/search.service'
import { ComponentPagination } from '@app/shared/rest/component-pagination.model'
import { I18n } from '@ngx-translate/i18n-polyfill'
err => this.notifier.error(err.text)
)
+
+ this.hooks.runAction('action:search.init', 'search')
}
ngOnDestroy () {
return this.advancedSearch.size()
}
- removeVideoFromArray (video: Video) {
+ // Add VideoChannel for typings, but the template already checks "video" argument is a video
+ removeVideoFromArray (video: Video | VideoChannel) {
this.results = this.results.filter(r => !this.isVideo(r) || r.id !== video.id)
}
return this.hooks.wrapObsFun(
this.searchService.searchVideos.bind(this.searchService),
params,
- 'common',
+ 'search',
'filter:api.search.videos.list.params',
'filter:api.search.videos.list.result'
)
}
private getVideoChannelObs () {
+ if (!this.currentSearch) return of({ data: [], total: 0 })
+
const params = {
search: this.currentSearch,
componentPagination: immutableAssign(this.pagination, { itemsPerPage: this.channelsPerPage })
return this.hooks.wrapObsFun(
this.searchService.searchVideoChannels.bind(this.searchService),
params,
- 'common',
+ 'search',
'filter:api.search.video-channels.list.params',
'filter:api.search.video-channels.list.result'
)