diff options
author | Chocobozzz <me@florianbigard.com> | 2023-05-24 16:48:54 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2023-05-24 16:56:05 +0200 |
commit | 54909304287f3c04dcfb39660be8ead57dc95440 (patch) | |
tree | 478f1b913f3bd4c3bbaa17525f0114c5b0a8689d /client/src/app/shared/shared-video-miniature | |
parent | d0fbc9fd0a29c37f3ff9b99030351e90b276fe7d (diff) | |
download | PeerTube-54909304287f3c04dcfb39660be8ead57dc95440.tar.gz PeerTube-54909304287f3c04dcfb39660be8ead57dc95440.tar.zst PeerTube-54909304287f3c04dcfb39660be8ead57dc95440.zip |
Remove suppressImplicitAnyIndexErrors
It's deprecated by TS
Diffstat (limited to 'client/src/app/shared/shared-video-miniature')
3 files changed, 17 insertions, 15 deletions
diff --git a/client/src/app/shared/shared-video-miniature/video-download.component.ts b/client/src/app/shared/shared-video-miniature/video-download.component.ts index 4135542dc..cac82d8d0 100644 --- a/client/src/app/shared/shared-video-miniature/video-download.component.ts +++ b/client/src/app/shared/shared-video-miniature/video-download.component.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | import { mapValues, pick } from 'lodash-es' | 1 | import { mapValues } from 'lodash-es' |
2 | import { firstValueFrom } from 'rxjs' | 2 | import { firstValueFrom } from 'rxjs' |
3 | import { tap } from 'rxjs/operators' | 3 | import { tap } from 'rxjs/operators' |
4 | import { Component, ElementRef, Inject, LOCALE_ID, ViewChild } from '@angular/core' | 4 | import { Component, ElementRef, Inject, LOCALE_ID, ViewChild } from '@angular/core' |
@@ -6,11 +6,12 @@ import { HooksService } from '@app/core' | |||
6 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' | 6 | import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' |
7 | import { logger } from '@root-helpers/logger' | 7 | import { logger } from '@root-helpers/logger' |
8 | import { videoRequiresAuth } from '@root-helpers/video' | 8 | import { videoRequiresAuth } from '@root-helpers/video' |
9 | import { objectKeysTyped, pick } from '@shared/core-utils' | ||
9 | import { VideoCaption, VideoFile, VideoPrivacy } from '@shared/models' | 10 | import { VideoCaption, VideoFile, VideoPrivacy } from '@shared/models' |
10 | import { BytesPipe, NumberFormatterPipe, VideoDetails, VideoFileTokenService, VideoService } from '../shared-main' | 11 | import { BytesPipe, NumberFormatterPipe, VideoDetails, VideoFileTokenService, VideoService } from '../shared-main' |
11 | 12 | ||
12 | type DownloadType = 'video' | 'subtitles' | 13 | type DownloadType = 'video' | 'subtitles' |
13 | type FileMetadata = { [key: string]: { label: string, value: string } } | 14 | type FileMetadata = { [key: string]: { label: string, value: string | number } } |
14 | 15 | ||
15 | @Component({ | 16 | @Component({ |
16 | selector: 'my-video-download', | 17 | selector: 'my-video-download', |
@@ -218,10 +219,10 @@ export class VideoDownloadComponent { | |||
218 | const keyToTranslateFunction = { | 219 | const keyToTranslateFunction = { |
219 | encoder: (value: string) => ({ label: $localize`Encoder`, value }), | 220 | encoder: (value: string) => ({ label: $localize`Encoder`, value }), |
220 | format_long_name: (value: string) => ({ label: $localize`Format name`, value }), | 221 | format_long_name: (value: string) => ({ label: $localize`Format name`, value }), |
221 | size: (value: number) => ({ label: $localize`Size`, value: this.bytesPipe.transform(value, 2) }), | 222 | size: (value: number | string) => ({ label: $localize`Size`, value: this.bytesPipe.transform(+value, 2) }), |
222 | bit_rate: (value: number) => ({ | 223 | bit_rate: (value: number | string) => ({ |
223 | label: $localize`Bitrate`, | 224 | label: $localize`Bitrate`, |
224 | value: `${this.numbersPipe.transform(value)}bps` | 225 | value: `${this.numbersPipe.transform(+value)}bps` |
225 | }) | 226 | }) |
226 | } | 227 | } |
227 | 228 | ||
@@ -230,8 +231,8 @@ export class VideoDownloadComponent { | |||
230 | delete sanitizedFormat.tags | 231 | delete sanitizedFormat.tags |
231 | 232 | ||
232 | return mapValues( | 233 | return mapValues( |
233 | pick(sanitizedFormat, Object.keys(keyToTranslateFunction)), | 234 | pick(sanitizedFormat, objectKeysTyped(keyToTranslateFunction)), |
234 | (val, key) => keyToTranslateFunction[key](val) | 235 | (val: string, key: keyof typeof keyToTranslateFunction) => keyToTranslateFunction[key](val) |
235 | ) | 236 | ) |
236 | } | 237 | } |
237 | 238 | ||
@@ -242,29 +243,29 @@ export class VideoDownloadComponent { | |||
242 | let keyToTranslateFunction = { | 243 | let keyToTranslateFunction = { |
243 | codec_long_name: (value: string) => ({ label: $localize`Codec`, value }), | 244 | codec_long_name: (value: string) => ({ label: $localize`Codec`, value }), |
244 | profile: (value: string) => ({ label: $localize`Profile`, value }), | 245 | profile: (value: string) => ({ label: $localize`Profile`, value }), |
245 | bit_rate: (value: number) => ({ | 246 | bit_rate: (value: number | string) => ({ |
246 | label: $localize`Bitrate`, | 247 | label: $localize`Bitrate`, |
247 | value: `${this.numbersPipe.transform(value)}bps` | 248 | value: `${this.numbersPipe.transform(+value)}bps` |
248 | }) | 249 | }) |
249 | } | 250 | } |
250 | 251 | ||
251 | if (type === 'video') { | 252 | if (type === 'video') { |
252 | keyToTranslateFunction = Object.assign(keyToTranslateFunction, { | 253 | keyToTranslateFunction = Object.assign(keyToTranslateFunction, { |
253 | width: (value: number) => ({ label: $localize`Resolution`, value: `${value}x${stream.height}` }), | 254 | width: (value: string | number) => ({ label: $localize`Resolution`, value: `${value}x${stream.height}` }), |
254 | display_aspect_ratio: (value: string) => ({ label: $localize`Aspect ratio`, value }), | 255 | display_aspect_ratio: (value: string) => ({ label: $localize`Aspect ratio`, value }), |
255 | avg_frame_rate: (value: string) => ({ label: $localize`Average frame rate`, value }), | 256 | avg_frame_rate: (value: string) => ({ label: $localize`Average frame rate`, value }), |
256 | pix_fmt: (value: string) => ({ label: $localize`Pixel format`, value }) | 257 | pix_fmt: (value: string) => ({ label: $localize`Pixel format`, value }) |
257 | }) | 258 | }) |
258 | } else { | 259 | } else { |
259 | keyToTranslateFunction = Object.assign(keyToTranslateFunction, { | 260 | keyToTranslateFunction = Object.assign(keyToTranslateFunction, { |
260 | sample_rate: (value: number) => ({ label: $localize`Sample rate`, value }), | 261 | sample_rate: (value: string | number) => ({ label: $localize`Sample rate`, value }), |
261 | channel_layout: (value: number) => ({ label: $localize`Channel Layout`, value }) | 262 | channel_layout: (value: string | number) => ({ label: $localize`Channel Layout`, value }) |
262 | }) | 263 | }) |
263 | } | 264 | } |
264 | 265 | ||
265 | return mapValues( | 266 | return mapValues( |
266 | pick(stream, Object.keys(keyToTranslateFunction)), | 267 | pick(stream, Object.keys(keyToTranslateFunction)), |
267 | (val, key) => keyToTranslateFunction[key](val) | 268 | (val: string, key: keyof typeof keyToTranslateFunction) => keyToTranslateFunction[key](val) |
268 | ) | 269 | ) |
269 | } | 270 | } |
270 | 271 | ||
diff --git a/client/src/app/shared/shared-video-miniature/video-filters.model.ts b/client/src/app/shared/shared-video-miniature/video-filters.model.ts index 6b4b72c75..4db73b25a 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters.model.ts +++ b/client/src/app/shared/shared-video-miniature/video-filters.model.ts | |||
@@ -84,7 +84,7 @@ export class VideoFilters { | |||
84 | if (specificKey && specificKey !== key) continue | 84 | if (specificKey && specificKey !== key) continue |
85 | 85 | ||
86 | // FIXME: typings | 86 | // FIXME: typings |
87 | this[key as any] = value | 87 | (this as any)[key] = value |
88 | } | 88 | } |
89 | 89 | ||
90 | this.buildActiveFilters() | 90 | this.buildActiveFilters() |
diff --git a/client/src/app/shared/shared-video-miniature/videos-selection.component.ts b/client/src/app/shared/shared-video-miniature/videos-selection.component.ts index 460a0080e..86fe502e2 100644 --- a/client/src/app/shared/shared-video-miniature/videos-selection.component.ts +++ b/client/src/app/shared/shared-video-miniature/videos-selection.component.ts | |||
@@ -2,6 +2,7 @@ import { Observable, Subject } from 'rxjs' | |||
2 | import { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from '@angular/core' | 2 | import { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from '@angular/core' |
3 | import { ComponentPagination, Notifier, User } from '@app/core' | 3 | import { ComponentPagination, Notifier, User } from '@app/core' |
4 | import { logger } from '@root-helpers/logger' | 4 | import { logger } from '@root-helpers/logger' |
5 | import { objectKeysTyped } from '@shared/core-utils' | ||
5 | import { ResultList, VideosExistInPlaylists, VideoSortField } from '@shared/models' | 6 | import { ResultList, VideosExistInPlaylists, VideoSortField } from '@shared/models' |
6 | import { PeerTubeTemplateDirective, Video } from '../shared-main' | 7 | import { PeerTubeTemplateDirective, Video } from '../shared-main' |
7 | import { MiniatureDisplayOptions } from './video-miniature.component' | 8 | import { MiniatureDisplayOptions } from './video-miniature.component' |
@@ -93,7 +94,7 @@ export class VideosSelectionComponent implements AfterContentInit { | |||
93 | } | 94 | } |
94 | 95 | ||
95 | isInSelectionMode () { | 96 | isInSelectionMode () { |
96 | return Object.keys(this._selection).some(k => this._selection[k] === true) | 97 | return objectKeysTyped(this._selection).some(k => this._selection[k] === true) |
97 | } | 98 | } |
98 | 99 | ||
99 | videoById (index: number, video: Video) { | 100 | videoById (index: number, video: Video) { |