diff --git a/src/app/components/home/home.component.html b/src/app/components/home/home.component.html index 2714fc22..af6cbc39 100644 --- a/src/app/components/home/home.component.html +++ b/src/app/components/home/home.component.html @@ -26,8 +26,10 @@

Meetups em destaque

-
- +
+
diff --git a/src/app/components/home/home.component.ts b/src/app/components/home/home.component.ts index d1f3f7ea..c270750a 100644 --- a/src/app/components/home/home.component.ts +++ b/src/app/components/home/home.component.ts @@ -18,9 +18,9 @@ export class HomeComponent implements OnInit, OnDestroy { public hasBook: Boolean = true; public meetups: Meetup[] = []; - public meetupsAll: Meetup[] = []; - public hasMeetup: boolean = true; - public showButtonAllMeetups: boolean = true; + public meetupsCurrentPage: number = 1; + public meetupsPerPage: number = 10; + public showButtonMoreMeetups: boolean = true; private _destroySubscribes$ = new Subject(); @@ -43,20 +43,19 @@ export class HomeComponent implements OnInit, OnDestroy { getMeetups() { this._scMeetup - .getAll() + .get(this.meetupsCurrentPage, this.meetupsPerPage) .pipe(takeUntil(this._destroySubscribes$)) .subscribe((meetups) => { - this.meetupsAll = meetups.items; - this.hasMeetup = meetups.items.length > 0 ? true : false; + this.meetups.push(...meetups.items); - this.meetupsAll.sort((a, b) => (a.startDate > b.startDate ? -1 : 0)); - this.meetups = this.meetupsAll.slice(0, 5); + const maxPage = Math.ceil(meetups.totalItems / meetups.itemsPerPage); + this.showButtonMoreMeetups = this.meetupsCurrentPage < maxPage; }); } - showAllMetups() { - this.meetups = this.meetupsAll; - this.showButtonAllMeetups = false; + showMoreMetups() { + this.meetupsCurrentPage++; + this.getMeetups(); } ngOnDestroy() { diff --git a/src/app/core/services/meetup/meetup.service.ts b/src/app/core/services/meetup/meetup.service.ts index f60608f4..ae091346 100644 --- a/src/app/core/services/meetup/meetup.service.ts +++ b/src/app/core/services/meetup/meetup.service.ts @@ -15,8 +15,8 @@ export class MeetupService { private config: AppConfig ) {} - public getAll(): Observable { - return this._http.get(`${this.config.apiEndpoint}/Meetup`); + public get(page: number, pageSize: number): Observable { + return this._http.get(`${this.config.apiEndpoint}/Meetup?page=${page}&pagesize=${pageSize}`); } public search(criteria: string): Observable {