All files / src/app/components/command-center command-center.component.ts

100% Statements 15/15
100% Branches 4/4
100% Functions 8/8
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48                              138x 27x             27x   4138x           9923x       5x 5x 1x 1x   4x   4x     111x    
import { Component, OnInit, inject } from '@angular/core';
 
import { FormsModule } from '@angular/forms';
import { SelectModule } from 'primeng/select';
 
import { Signal } from '../../models/signals';
import { TwinpadApiService } from '../../services/twinpad-api.service';
import { SignalCommandComponent } from '../signal-command/signal-command.component';
 
@Component({
  selector: 'app-command-center',
  imports: [SignalCommandComponent, SelectModule, FormsModule],
  templateUrl: './command-center.component.html',
  styleUrl: './command-center.component.scss'
})
export class CommandCenterComponent implements OnInit {
  private twinpadApiService = inject(TwinpadApiService);
 
  signalIdsToDisplay: string[];
  _selectedSignalId: string;
  signal: Signal | undefined;
 
  ngOnInit(): void {
    this.twinpadApiService.getSignalsStatuses().subscribe({
      next: signalStatuses => {
        this.signalIdsToDisplay = signalStatuses.filter(signal => signal.status !== "down").map(signal => signal.signal_id);
      }
    });
  }
 
  get selectedSignalId() {
    return this._selectedSignalId;
  }
 
  set selectedSignalId(newValue: string) {
    this._selectedSignalId = newValue;
    if (this._selectedSignalId === null) {
      this.signal = undefined;
      return;
    }
    this.twinpadApiService.getSignal(this._selectedSignalId).subscribe({
      next: signal => {
        this.signal = signal;
      }
    });
  }
}