import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { Subscription } from 'rxjs'; import { Poll } from '../../core/models/poll.model'; import { ModalService } from '../../core/services/modal.service'; import { PollService } from '../../core/services/poll.service'; import { DateService } from '../../core/services/date.service'; @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 pollSlug: string; public passHash: string; public fetching = true; public isArchived: boolean; private routeSubscription: Subscription; constructor( private router: Router, private _Activatedroute: ActivatedRoute, public pollService: PollService, public dateService: DateService, private modalService: ModalService ) {} ngOnInit(): void { console.log('constultation de poll'); this.pollService.poll.subscribe((newpoll: Poll) => { this.poll = newpoll; if (newpoll) { this.isArchived = new Date(newpoll.expiracy_date) < new Date(); } }); this._Activatedroute.paramMap.subscribe((params) => { console.log('params', params); this.pollSlug = params.get('slug'); this.passHash = params.get('hash'); console.log('hash, slug', this.passHash, this.pollSlug); if (this.passHash) { this.pollService.loadPollBySlugWithPasswordHash(this.pollSlug, this.passHash); } else { this.pollService.loadPollBySlug(this.pollSlug).then((resp) => { console.log('resp', resp); this.fetching = false; }); } }); } ngOnDestroy(): void { if (this.routeSubscription) { this.routeSubscription.unsubscribe(); } } }