import { Account, AccountService, DropdownAction, ListOverflowItem, VideoChannel, VideoChannelService } from '@app/shared/shared-main'
import { AccountReportComponent } from '@app/shared/shared-moderation'
import { User, UserRight } from '@shared/models'
+import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes'
+import { AccountSearchComponent } from './account-search/account-search.component'
@Component({
templateUrl: './accounts.component.html',
})
export class AccountsComponent implements OnInit, OnDestroy {
@ViewChild('accountReportModal') accountReportModal: AccountReportComponent
+ accountSearch: AccountSearchComponent
account: Account
accountUser: User
switchMap(accountId => this.accountService.getAccount(accountId)),
tap(account => this.onAccount(account)),
switchMap(account => this.videoChannelService.listAccountVideoChannels(account)),
- catchError(err => this.restExtractor.redirectTo404IfNotFound(err, [ 400, 404 ]))
+ catchError(err => this.restExtractor.redirectTo404IfNotFound(err, 'other', [
+ HttpStatusCode.BAD_REQUEST_400,
+ HttpStatusCode.NOT_FOUND_404
+ ]))
)
.subscribe(
videoChannels => this.videoChannels = videoChannels.data,
return $localize`${count} subscribers`
}
+ onOutletLoaded (component: Component) {
+ if (component instanceof AccountSearchComponent) {
+ this.accountSearch = component
+ } else {
+ this.accountSearch = undefined
+ }
+ }
+
+ searchChanged (search: string) {
+ if (this.accountSearch) this.accountSearch.updateSearch(search)
+ }
+
private onAccount (account: Account) {
this.prependModerationActions = undefined
if (!this.isAccountManageable) {
this.prependModerationActions = [
{
- label: $localize`Report account`,
+ label: $localize`Report this account`,
handler: () => this.showReportModal()
}
]