diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.html
index 33363eb..448afde 100644
--- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.html
@@ -1,8 +1,9 @@
-
-
+
+
Arbetslivserfarenhet
-
- -
+
+
+ -
{{ workExperience.employer }}
-
@@ -14,13 +15,13 @@
class="deltagare-tab-experiences__accordion"
[afExpanded]="accordionExpanded"
(click)="toggleAccordionExpanded()"
- *ngIf="hiddenWorkExperiences?.length"
+ *ngIf="hiddenWorkExperiences(workExperiences)?.length"
>
{{ accordionExpanded ? 'Dölj' : 'Visa' }} fler arbetsgivare
- -
+
-
{{ workExperience.employer }}
-
@@ -34,13 +35,13 @@
Utbildning
- Högsta utbildningsnivå:
- -
+
-
{{ highestEducation.level.description }}: {{ highestEducation.sunKod.description }}
-
+
Utbildningar:
@@ -56,7 +57,7 @@
-
+
Körkort
- Har körkort
@@ -74,3 +75,6 @@
Info saknas
+
+
+
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.scss
index fb6b80c..520a25a 100644
--- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.scss
+++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.scss
@@ -8,6 +8,10 @@
flex-basis: 0;
}
+ &__loader {
+ flex-grow: 1;
+ }
+
&__subheading {
font-size: var(--digi--typography--font-size--desktop);
font-weight: var(--digi--typography--font-weight--semibold);
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.ts
index 771858b..09474b3 100644
--- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.ts
+++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-experiences/deltagare-tab-experiences.component.ts
@@ -1,8 +1,14 @@
-import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
+import { ChangeDetectionStrategy, Component } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
import { DriversLicense } from '@msfa-models/drivers-license.model';
import { Education } from '@msfa-models/education.model';
import { HighestEducation } from '@msfa-models/highest-education.model';
import { WorkExperience } from '@msfa-models/work-experience.model';
+import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
+import { HandledareService } from '@msfa-services/handledare.service';
+import { combineLatest, Observable } from 'rxjs';
+import { map, shareReplay, startWith, switchMap } from 'rxjs/operators';
+import { DeltagareCardService } from '../../deltagare-card.service';
@Component({
selector: 'msfa-deltagare-tab-experiences',
@@ -11,22 +17,64 @@ import { WorkExperience } from '@msfa-models/work-experience.model';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DeltagareTabExperiencesComponent {
- @Input() workExperiences: WorkExperience[];
- @Input() highestEducation: HighestEducation;
- @Input() educations: Education[];
- @Input() driversLicense: DriversLicense;
-
accordionExpanded = false;
+ genomforandereferens$: Observable = this.activatedRoute.params.pipe(
+ map(({ genomforandeReferens }) => +genomforandeReferens)
+ );
+ workExperiences$: Observable = this.genomforandereferens$.pipe(
+ switchMap(genomforandeReferens =>
+ genomforandeReferens ? this.deltagareApiService.fetchWorkExperiences$(genomforandeReferens) : null
+ ),
+ shareReplay(1)
+ );
+ highestEducation$: Observable = this.genomforandereferens$.pipe(
+ switchMap(genomforandeReferens =>
+ genomforandeReferens ? this.deltagareApiService.fetchHighestEducation$(genomforandeReferens) : null
+ ),
+ shareReplay(1)
+ );
+ educations$: Observable = this.genomforandereferens$.pipe(
+ switchMap(genomforandeReferens =>
+ genomforandeReferens ? this.deltagareApiService.fetchEducations$(genomforandeReferens) : null
+ ),
+ shareReplay(1)
+ );
+ driversLicense$: Observable = this.genomforandereferens$.pipe(
+ switchMap(genomforandeReferens =>
+ genomforandeReferens ? this.deltagareApiService.fetchDriversLicense$(genomforandeReferens) : null
+ ),
+ shareReplay(1)
+ );
- get firstVisibleWorkExperiences(): WorkExperience[] {
- return this.workExperiences?.slice(0, 2);
+ dataIsLoading$: Observable = combineLatest([
+ this.workExperiences$,
+ this.highestEducation$,
+ this.educations$,
+ this.driversLicense$,
+ ]).pipe(
+ map(
+ ([workExperiences, highestEducation, educations, driversLicense]) =>
+ !(workExperiences && highestEducation && educations && driversLicense)
+ ),
+ startWith(true)
+ );
+
+ firstVisibleWorkExperiences(workExperiences: WorkExperience[]): WorkExperience[] {
+ return workExperiences?.slice(0, 2);
}
- get hiddenWorkExperiences(): WorkExperience[] {
- return this.workExperiences?.slice(2);
+ hiddenWorkExperiences(workExperiences: WorkExperience[]): WorkExperience[] {
+ return workExperiences?.slice(2);
}
toggleAccordionExpanded(): void {
this.accordionExpanded = !this.accordionExpanded;
}
+
+ constructor(
+ private activatedRoute: ActivatedRoute,
+ private deltagareCardService: DeltagareCardService,
+ private handledareService: HandledareService,
+ private deltagareApiService: DeltagareApiService
+ ) {}
}
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-personal-information/deltagare-tab-personal-information.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-personal-information/deltagare-tab-personal-information.component.html
index 1cabb15..8104df4 100644
--- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-personal-information/deltagare-tab-personal-information.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/deltagare-card/components/deltagare-tab-personal-information/deltagare-tab-personal-information.component.html
@@ -1,5 +1,5 @@
-