import { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { httpErrorMessage } from 'src/app/helpers/http-error'; import { Tutorial } from 'src/app/models/tutorial.model'; import { TokenStorageService } from 'src/app/services/token-storage.service'; import { TutorialService } from 'src/app/services/tutorial.service'; @Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.scss'], changeDetection: ChangeDetectionStrategy.Eager, standalone: false }) export class HomeComponent implements OnInit { private readonly tutorialService = inject(TutorialService); private readonly snackBar = inject(MatSnackBar); readonly isLoggedIn = inject(TokenStorageService).isLoggedIn(); tutorials: Tutorial[] = []; loaded = false; ngOnInit(): void { this.tutorialService.getPublished().subscribe({ // На пустой результат сервер отвечает 204 без тела next: data => { this.tutorials = data ?? []; this.loaded = true; }, error: err => { this.loaded = true; this.snackBar.open(httpErrorMessage(err), 'OK', { duration: 5000 }); } }); } }