File

src/lib/header.service.ts

Index

Properties

Properties

component
component: Constructor
Type : Constructor
order
order: number
Type : number
import {
  computed,
  Injectable,
  signal,
} from '@angular/core';
import { Constructor } from '@rxap/utilities';

export interface SortedComponent {
  component: Constructor;
  order: number;
}

@Injectable({ providedIn: 'root' })
export class HeaderService {

  private readonly componentsWithMetadata = signal<Array<SortedComponent>>([]);
  public readonly componentCount = computed(() => this.componentsWithMetadata().length + 1);
  public readonly components = computed(() => this.componentsWithMetadata().map(item => item.component));

  public addComponent(component: Constructor, order = 0): void {
    this.componentsWithMetadata.update(components => {
      components.push({
        component,
        order,
      });
      components.sort((a, b) => a.order - b.order);
      return components.slice();
    });
  }

}

results matching ""

    No results matching ""