import {Component, Input, OnChanges, OnInit} from '@angular/core'; import {Need} from '../../models/Need'; import {Observable} from 'rxjs'; @Component({ selector: 'app-need-list', standalone: false, templateUrl: './need-list.component.html', styleUrl: './need-list.component.css' }) export class NeedListComponent implements OnChanges { @Input({required: true}) needs!: Need[] @Input() itemsPerPage: number = 5; visibleNeeds: Need[] = []; currentPage: number = 0; totalPages: number = 0; constructor( ) {} ngOnChanges() { this.updateVisibleNeeds() } decrementPage() { this.currentPage--; this.updateVisibleNeeds(); } incrementPage() { this.currentPage++; this.updateVisibleNeeds(); } lastPage() { this.currentPage = this.totalPages - 1 this.updateVisibleNeeds() } firstPage() { this.currentPage = 0 this.updateVisibleNeeds() } updateVisibleNeeds() { this.totalPages = Math.ceil(this.needs.length / this.itemsPerPage); this.visibleNeeds = this.needs.slice(this.currentPage * this.itemsPerPage, (this.currentPage + 1) * this.itemsPerPage); } }