import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { PolicyService } from '@core/services/policy.service'; import { ApplicantProfileData, ApplicantSummaryApi } from '@core/typings/applicant.typing'; import { ClientSettingsService } from '@features/client-settings/client-settings.service'; import { SystemTags } from '@features/system-tags/typings/system-tags.typing'; import { UserService } from '@features/users/user.service'; import { SummaryNumbers, Tab } from '@yourcause/common'; import { ApplicantManagerService } from '../applicant-manager.service'; @Component({ selector: 'gc-applicant-profile-wrapper', templateUrl: './applicant-profile-wrapper.component.html', styleUrls: ['./applicant-profile-wrapper.component.scss'] }) export class ApplicantProfileWrapperComponent implements OnInit { Buckets = SystemTags.Buckets; id: string; tabs: Tab[]; applicantDetail: ApplicantProfileData; applicant: ApplicantSummaryApi; calculations: SummaryNumbers; canSeeAppManager = false; clientDefaultTz = this.clientSettingsService.clientSettings.defaultTimezone; constructor ( private activatedRoute: ActivatedRoute, private applicantManagerService: ApplicantManagerService, private clientSettingsService: ClientSettingsService, private userService: UserService, private policyService: PolicyService ) { } get clientBranding () { return this.clientSettingsService.get('clientBranding'); } ngOnInit () { this.canSeeAppManager = this.policyService.grantApplication.canAccessApplicationManager(); this.id = this.activatedRoute.snapshot.params.id; this.applicantDetail = this.applicantManagerService.get('applicantMap')[this.id]; this.applicant = this.applicantDetail ? this.applicantDetail.applicant : ({} as ApplicantSummaryApi); this.calculations = this.applicantDetail ? this.applicantDetail.additionalData : ({} as SummaryNumbers); const hasNominations = this.userService.user.clientHasNominations && this.userService.user.isInNominationWorkFlow; this.tabs = [{ link: './applications', labelKey: 'common:hdrApplications', label: 'Applications', icon: 'clipboard' }, hasNominations ? { link: './nominations', labelKey: 'common:hdrNominations', label: 'Nominations', icon: 'medal' } : null, { link: './organizations', labelKey: 'common:lblOrganizations', label: 'Organizations', icon: 'heart' }, { link: './awards', labelKey: 'common:hdrAwards', label: 'Awards', icon: 'gift' }].filter((item) => !!item); } }