From acb70f9002a399c6e12aafbb095ee4ea4beb2961 Mon Sep 17 00:00:00 2001 From: Jonas Leder <jonas.leder@jobrouter.com> Date: Wed, 16 Mar 2022 11:30:08 +0100 Subject: [PATCH] get data from graphql --- src/app/bestand/bestand.component.html | 2 +- src/app/bestand/bestand.component.ts | 34 +++++++++++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/app/bestand/bestand.component.html b/src/app/bestand/bestand.component.html index 3fd4857..947107c 100644 --- a/src/app/bestand/bestand.component.html +++ b/src/app/bestand/bestand.component.html @@ -1,4 +1,4 @@ -<table mat-table [dataSource]="dataSource" class="mat-elevation-z8"> +<table mat-table [dataSource]="products" class="mat-elevation-z8"> <ng-container matColumnDef="id"> <th mat-header-cell *matHeaderCellDef> ID </th> diff --git a/src/app/bestand/bestand.component.ts b/src/app/bestand/bestand.component.ts index 5cb0d8b..054f506 100644 --- a/src/app/bestand/bestand.component.ts +++ b/src/app/bestand/bestand.component.ts @@ -1,6 +1,8 @@ import { Component, OnInit } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { Apollo, gql } from 'apollo-angular'; -export interface PeriodicElement { +export interface Product { id: number; manufacturer: string; name: string; @@ -8,11 +10,6 @@ export interface PeriodicElement { position: string; } -const ELEMENT_DATA: PeriodicElement[] = [ - {id: 1, manufacturer: "Draka", name: "Cat 6a 1,5m", amount: 70, position: "Netzwerk"}, - {id: 2, manufacturer: "AzDelivery", name: "NODEMCU 32", amount: 3, position: "Schrank"} -]; - @Component({ selector: 'app-bestand', templateUrl: './bestand.component.html', @@ -20,11 +17,30 @@ const ELEMENT_DATA: PeriodicElement[] = [ }) export class BestandComponent implements OnInit { displayedColumns: string[] = ['id', 'manufacturer', 'name', 'amount', 'position']; - dataSource = ELEMENT_DATA; + loading: boolean = true; + products: Product[] = []; + private querySubscription: Subscription = new Subscription(); + + constructor(private apollo: Apollo) { } - constructor() { } + ngOnInit() { + this.querySubscription = this.apollo.watchQuery<any>({ + query: gql`query { + products { + id + name + } + }` + }) + .valueChanges + .subscribe(({ data, loading }) => { + this.loading = loading; + this.products = data.products; + }); + } - ngOnInit(): void { + ngOnDestroy() { + this.querySubscription.unsubscribe(); } } -- GitLab