import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Subscription } from 'rxjs'; import { PollConfiguration } from '../../core/models/configuration.model'; import { Poll } from '../../core/models/poll.model'; import { ModalService } from '../../core/services/modal.service'; import { UserService } from '../../core/services/user.service'; import { SettingsComponent } from '../../shared/components/settings/settings.component'; @Component({ selector: 'app-consultation', templateUrl: './consultation.component.html', styleUrls: ['./consultation.component.scss'], }) export class ConsultationComponent implements OnInit, OnDestroy { public isCompactMode = true; public poll: Poll; public isArchived: boolean; private routeSubscription: Subscription; constructor( private router: Router, private activatedRoute: ActivatedRoute, private userService: UserService, private modalService: ModalService ) {} ngOnInit(): void { if (!this.userService.isCurrentUserIdentifiable()) { this.modalService.openModal(SettingsComponent); } this.routeSubscription = this.activatedRoute.data.subscribe((data: { poll: Poll }) => { if (data.poll) { this.poll = data.poll; this.isArchived = PollConfiguration.isArchived(data.poll.configuration); } else { this.router.navigate(['/page-not-found']); } }); } ngOnDestroy(): void { if (this.routeSubscription) { this.routeSubscription.unsubscribe(); } } }