File

src/app/features/contact-persons/contact-persons.component.ts

Implements

OnInit

Metadata

selector app-contact-persons-list
styleUrls ./contact-persons.component.scss
templateUrl ./contact-persons.component.html

Index

Properties
Methods

Methods

ngOnInit
ngOnInit()
Returns : void

Properties

contactPersons$
Type : Observable<ContactPerson[]>
Decorators :
@Select(ContactPersonState.contactPersons)
import { Component, OnInit } from '@angular/core';
import { Select } from '@ngxs/store';
import { Observable } from 'rxjs';
import { ContactPerson } from 'src/app/core/data/models/contact-person.model';
import { ContactPersonState } from 'src/app/core/ngxs/contact-person.state';

@Component({
  selector: 'app-contact-persons-list',
  templateUrl: './contact-persons.component.html',
  styleUrls: ['./contact-persons.component.scss'],
})
export class ContactPersonsComponent implements OnInit {
  @Select(ContactPersonState.contactPersons) contactPersons$: Observable<ContactPerson[]>;

  ngOnInit() {}
}
<header class="grid-1-auto-auto mb-2">
  <h4 data-cy="heading">Kontakt</h4>
  <a routerLink="new" hero size="medium" nbButton status="primary" data-cy="new-contact">
    <nb-icon icon="person-add-outline"></nb-icon>
    Neue Person
  </a>
</header>
<div *ngIf="contactPersons$ | async as contactPersons; else noContactPersons">
  <nb-card fullWidth>
    <nb-card-header>Registrierte Kontaktpersonen ({{ contactPersons.length }})</nb-card-header>
    <nb-card-body>
      <nb-list>
        <nb-list-item *ngFor="let contactPerson of contactPersons">
          <app-contact-person-card [contactPerson]="contactPerson" data-cy="contact-person-card"></app-contact-person-card>
        </nb-list-item>
      </nb-list>
    </nb-card-body>
  </nb-card>
</div>
<ng-template #noContactPersons>
  <div class="hint-no-contact-persons text-hint">
    <h6 class="text-hint">Keine Kontaktpersonen registriert</h6>
  </div>
</ng-template>
<nb-layout>
  <router-outlet></router-outlet>
</nb-layout>

./contact-persons.component.scss

@import '../../../sass/utils';

.hint-no-contact-persons {
  max-width: 900px;
  margin: 100px auto 0 auto;
  text-align: center;
}
nb-card-body {
  padding: 0;
}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""