diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/pipes/recording.pipe.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/pipes/recording.pipe.ts index 68147249..3de34723 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/pipes/recording.pipe.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/pipes/recording.pipe.ts @@ -9,13 +9,15 @@ import { Pipe, PipeTransform } from '@angular/core'; export class DurationFromSecondsPipe implements PipeTransform { transform(durationInSeconds: number): string { if (durationInSeconds < 60) { - return Math.floor(durationInSeconds) + 's'; + return `${Math.floor(durationInSeconds)}s`; } else if (durationInSeconds < 3600) { - return Math.floor(durationInSeconds / 60) + 'm ' + Math.floor(durationInSeconds % 60) + 's'; + const minutes = Math.floor(durationInSeconds / 60); + const seconds = Math.floor(durationInSeconds % 60); + return `${minutes}m ${seconds}s`; } else { const hours = Math.floor(durationInSeconds / 3600); const minutes = Math.floor((durationInSeconds - hours * 3600) / 60); - return hours + 'h ' + minutes + 'm'; + return `${hours}h ${minutes}m`; } } } @@ -23,48 +25,47 @@ export class DurationFromSecondsPipe implements PipeTransform { /** * @internal */ - @Pipe({ +@Pipe({ name: 'searchByStringProperty' }) export class SearchByStringPropertyPipe implements PipeTransform { - transform(items: any[], props: { properties: string[], filter: string }): any { + transform(items: any[], props: { properties: string[]; filter: string }): any { if (!items || !props || props.properties.length === 0 || !props.filter) { - return items; + return items; } - return items.filter(item => { - return props.properties.some(prop => { - const multipleProps = prop.split('.'); - let recursiveProp = item; - try { - multipleProps.forEach(p => { - recursiveProp = recursiveProp[p]; - if (recursiveProp === null || recursiveProp === undefined) { - throw new Error('Property not found'); + return items.filter((item) => { + return props.properties.some((prop) => { + const multipleProps = prop.split('.'); + let recursiveProp = item; + try { + multipleProps.forEach((p) => { + recursiveProp = recursiveProp[p]; + if (recursiveProp === null || recursiveProp === undefined) { + throw new Error('Property not found'); + } + }); + } catch (error) { + return false; } - }); - } catch (error) { - return false; - } - return recursiveProp.indexOf(props.filter) !== -1; - }) + return recursiveProp.indexOf(props.filter) !== -1; + }); }); - } + } } /** * @internal */ - @Pipe({ +@Pipe({ name: 'thumbnailUrl' }) export class ThumbnailFromUrlPipe implements PipeTransform { transform(url: string): string { - if(url.includes('.mp4')){ - const lastPart = url.split('/').pop(); - let thumbnailUrl = lastPart?.replace('mp4', 'jpg'); - thumbnailUrl = `recordings/${thumbnailUrl?.split('.')[0]}/${thumbnailUrl}`; - return thumbnailUrl; - } - return url; + const lastPart = url.split('/').pop(); + const isMp4 = url.includes('.mp4'); + + if (!lastPart || !isMp4) return url; + + return `recordings/${lastPart.split('.')[0]}/${lastPart.replace('mp4', 'jpg')}`; } }