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'
import { immutableAssign } from '@app/shared/misc/utils'
import { Video } from '@app/shared/video/video.model'
import { HooksService } from '@app/core/plugins/hooks.service'
-import { PluginService } from '@app/core/plugins/plugin.service'
@Component({
selector: 'my-search',
private notifier: Notifier,
private searchService: SearchService,
private authService: AuthService,
- private hooks: HooksService,
- private pluginService: PluginService
+ private hooks: HooksService
) { }
get user () {
}
ngOnInit () {
- this.pluginService.loadPluginsByScope('search')
-
this.subActivatedRoute = this.route.queryParams.subscribe(
queryParams => {
const querySearch = queryParams['search']
err => this.notifier.error(err.text)
)
- this.hooks.runAction('action:search.init')
+ 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)
}
}
private getVideoChannelObs () {
+ if (!this.currentSearch) return of({ data: [], total: 0 })
+
const params = {
search: this.currentSearch,
componentPagination: immutableAssign(this.pagination, { itemsPerPage: this.channelsPerPage })