import { Component, OnInit, ViewChild } from "@angular/core"; import { MatPaginator } from "@angular/material/paginator"; import { MatTableDataSource } from "@angular/material/table"; import { MatDialog } from "@angular/material/dialog"; import { GearService } from "../../services/gear.service"; import { ServiceComm } from "../../services/service-comm.service"; import { GearResp } from "../../models/gear"; import { AddAction } from "../../models/add-action.enum"; import { NewGearComponent } from "../new-gear/new-gear.component"; @Component({ selector: "app-list-of-gears", templateUrl: "./list-of-gears.component.html", styleUrls: ["./list-of-gears.component.css"] }) export class ListOfGearsComponent implements OnInit { public displayedColumns: Array = [ "id", "name", "manufacturer", "maxSize", "aad", "mainCanopy", "reserveCanopy" ]; public dataSourceTable: MatTableDataSource; public resultsLength = 0; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; constructor( private serviceApi: GearService, private serviceComm: ServiceComm, public dialog: MatDialog ) {} ngOnInit() { this.serviceComm.refreshRequest.subscribe(action => { if (action === AddAction.Gear) { this.getListOfGears(); } }); this.serviceComm.UpdatedComponentTitle("List of gears"); this.getListOfGears(); } getListOfGears() { this.serviceApi.getListOfGears().subscribe(data => { setTimeout(() => { this.dataSourceTable = new MatTableDataSource(data); this.dataSourceTable.paginator = this.paginator; this.resultsLength = data.length; }, 500); }); } openDialogToAdd() { this.dialog.open(NewGearComponent); } }