import { inject, Pipe, PipeTransform } from '@angular/core'; import { UnixTimePipe } from './unix-time.pipe'; @Pipe({ name: 'eventDates', standalone: true, }) export class EventDatesPipe implements PipeTransform { private unixTimePipe = inject(UnixTimePipe); transform(dates: number[]): string { const [start] = dates; const datesString = this.getDatesString(dates); const month = this.getMonth(start); const year = this.unixTimePipe.transform(start, 'yyyy'); // const hour = this.unixTimePipe.transform(start, 'HH:mm'); return `${datesString} de ${month} de ${year}`; } private getDatesString(dates: number[]) { if (dates.length === 1) { return this.unixTimePipe.transform(dates[0], 'dd'); } return dates .map((date) => this.unixTimePipe.transform(date, 'dd')) .reduce((prev, curr, idx) => { if (idx === 0) { return curr; } return idx === dates.length - 1 ? `${prev} y ${curr}` : `${prev}, ${curr}`; }, ''); } private getMonth(date: number) { const m = this.unixTimePipe.transform(date, 'MMMM') || ''; return m .split('') .map((letter, idx) => (idx === 0 ? letter.toUpperCase() : letter)) .join(''); } }