import {Component, Input, OnInit} from '@angular/core'; import {Need} from '../../models/Need'; import {BehaviorSubject, Observable} from 'rxjs'; @Component({ selector: 'app-need-list', standalone: false, templateUrl: './need-list.component.html', styleUrl: './need-list.component.css' }) export class NeedListComponent implements OnInit { @Input({required: true}) needs!: Observable visibleNeeds: Need[] = []; currentPage: number = 0; itemsPerPage: number = 5; totalPages: number = 0; constructor( ) {} ngOnInit() { this.needs.subscribe(needs => { this.totalPages = Math.ceil(needs.length / this.itemsPerPage); this.totalPages = Math.ceil(needs.length / this.itemsPerPage); this.visibleNeeds = needs.slice(this.currentPage * this.itemsPerPage, (this.currentPage + 1) * this.itemsPerPage); console.log(needs.length) }) } decrementPage() { this.currentPage--; this.updateVisibleNeeds(); } incrementPage() { this.currentPage++; this.updateVisibleNeeds(); } lastPage() { this.currentPage = this.totalPages - 1 this.updateVisibleNeeds() } firstPage() { this.currentPage = 0 this.updateVisibleNeeds() } editNeedsPerPage(amount: number) { this.itemsPerPage = amount; 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); } resetVisibleNeeds() { this.currentPage = 0; this.updateVisibleNeeds(); } }