- for (const video of this.videos) {
- const publishedDate = video.publishedAt
-
- if (currentGroupedDate <= GroupDate.TODAY && isToday(publishedDate)) {
- if (currentGroupedDate === GroupDate.TODAY) continue
-
- currentGroupedDate = GroupDate.TODAY
- this.groupedDates[ video.id ] = currentGroupedDate
- continue
- }
-
- if (currentGroupedDate <= GroupDate.YESTERDAY && isYesterday(publishedDate)) {
- if (currentGroupedDate === GroupDate.YESTERDAY) continue
-
- currentGroupedDate = GroupDate.YESTERDAY
- this.groupedDates[ video.id ] = currentGroupedDate
- continue
+ const periods = [
+ {
+ value: GroupDate.TODAY,
+ validator: (d: Date) => isToday(d)
+ },
+ {
+ value: GroupDate.YESTERDAY,
+ validator: (d: Date) => isYesterday(d)
+ },
+ {
+ value: GroupDate.THIS_WEEK,
+ validator: (d: Date) => isLastWeek(d)
+ },
+ {
+ value: GroupDate.THIS_MONTH,
+ validator: (d: Date) => isThisMonth(d)
+ },
+ {
+ value: GroupDate.LAST_MONTH,
+ validator: (d: Date) => isLastMonth(d)
+ },
+ {
+ value: GroupDate.OLDER,
+ validator: () => true