Skip to content

Commit ed6b551

Browse files
authored
add new logic to select newest post for meetups (#165)
* fix bad navigation * fix routes * add new logic to select newest post for meetups * fix comments
1 parent bed1b17 commit ed6b551

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/app/features/meetups/meetups.component.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { MeetupsHeaderComponent } from '../../components/meetups-header/meetups-
99
import { MatPaginator, PageEvent } from '@angular/material/paginator';
1010
import { NavigationService } from '../../core/services/navigation.service';
1111
import { map, Observable, switchMap } from 'rxjs';
12-
import { Category } from '../../core/model/categories.model';
1312
import { ActivatedRoute, Router } from '@angular/router';
1413
import { LocationsComponent } from '../../components/locations/locations.component';
1514
import { Location } from '../../core/model/locations.model';
@@ -68,7 +67,25 @@ export class MeetupsComponent {
6867
post => this.isMeetupCategory(post),
6968
(a, b) => this.compareByDate(a, b)
7069
)
71-
.pipe(map(result => result.posts[0]));
70+
.pipe(map(result => {
71+
const startOfToday = new Date();
72+
startOfToday.setHours(0, 0, 0, 0);
73+
74+
return this.findSoonestAfter(result.posts, startOfToday.getTime());
75+
}));
76+
}
77+
78+
findSoonestAfter(posts: Post[], minValue: number): Post | null {
79+
let soonest: Post | null = null;
80+
81+
for (const post of posts) {
82+
const num = new Date(post.date?.trim() ?? '').getTime();
83+
if (num > minValue && (soonest === null || num < new Date(soonest.date?.trim() ?? '').getTime())) {
84+
soonest = post;
85+
}
86+
}
87+
88+
return soonest;
7289
}
7390

7491
private getAllMeetups$() {

0 commit comments

Comments
 (0)