import { Component, Input, OnInit } from '@angular/core'; import { SpinnerService } from '@core/services/spinner.service'; import { CyclesAPI } from '@core/typings/api/cycles.typing'; import { TypeSafeFormBuilder, TypeSafeFormGroup } from '@yourcause/common'; import { AnalyticsService, EventType } from '@yourcause/common/analytics'; import { YCModalComponent } from '@yourcause/common/modals'; import { CyclesService } from '../cycles.service'; interface CommentGroup { comment: string; } @Component({ selector: 'gc-archive-cycle-modal', templateUrl: './archive-cycle-modal.component.html', styleUrls: ['./archive-cycle-modal.component.scss'] }) export class ArchiveCycleModalComponent extends YCModalComponent<{ comment: string; }> implements OnInit { @Input() cycleId: number; @Input() cycleName: string; @Input() isNomination = false; stats: CyclesAPI.ArchiveCycleStats; formGroup: TypeSafeFormGroup; constructor ( private formBuilder: TypeSafeFormBuilder, private spinnerService: SpinnerService, private cyclesService: CyclesService, private analyticsService: AnalyticsService ) { super(); } async ngOnInit () { this.spinnerService.startSpinner(); this.stats = await this.cyclesService.getArchiveCycleStats(this.cycleId); this.spinnerService.stopSpinner(); this.formGroup = this.formBuilder.group({ comment: '' }); } onSubmit () { this.closeModal.emit(this.formGroup.value); this.analyticsService.emitEvent({ eventName: 'Archive cycle save', eventType: EventType.Click, extras: null }); } }