1
- import { Component , OnInit } from '@angular/core' ;
1
+ import { Component , NgModule , OnInit } from '@angular/core' ;
2
2
import { DomSanitizer , SafeUrl } from '@angular/platform-browser' ;
3
3
import {
4
- ActivatedRoute
4
+ ActivatedRoute , Router
5
5
} from '@angular/router' ;
6
6
7
7
import {
8
8
Availability , GovernmentAdminModel ,
9
9
GovernmentRepresentativeService , GovernmentService
10
10
} from '../../../../../build/openapi/government-service' ;
11
- import { Observable , Subject } from "rxjs" ;
11
+ import { Observable } from "rxjs" ;
12
12
13
13
@Component ( {
14
14
selector : 'app-representative-list' ,
@@ -18,21 +18,44 @@ import {Observable, Subject} from "rxjs";
18
18
19
19
export class RepresentativeListComponent implements OnInit {
20
20
representatives : SanitizedRepresentativeAdminModel [ ] = [ ] ;
21
- currentLanguage ? : string = 'hu' ;
21
+ currentLanguage : string ;
22
22
governments$ : Observable < GovernmentAdminModel [ ] > = this . governmentService . renderAllGovernments ( ) ;
23
23
currentGovernmentId ?: number ;
24
24
25
25
constructor (
26
26
private readonly representativeService : GovernmentRepresentativeService ,
27
27
private readonly governmentService : GovernmentService ,
28
28
private sanitizer : DomSanitizer ,
29
- private route : ActivatedRoute
30
- ) { }
29
+ private route : ActivatedRoute ,
30
+ private router : Router
31
+ ) {
32
+ // Initialize currentLanguage to the language stored in local storage, or to 'hu' if it's not set yet
33
+ this . currentLanguage = window . localStorage . getItem ( 'lang' ) || 'hu' ;
34
+ }
35
+
31
36
32
37
ngOnInit ( ) : void {
33
38
this . listRepresentatives ( ) ;
34
39
}
35
40
41
+ changeLang ( lang : string ) : void {
42
+ // Set currentLanguage to the selected language
43
+ this . currentLanguage = lang ;
44
+ // Save currentLanguage to local storage
45
+ window . localStorage . setItem ( 'lang' , lang ) ;
46
+ // Update the URL with the new language
47
+ const url = this . router . url ;
48
+ const updatedUrl = url . split ( '/' ) . map ( segment => {
49
+ if ( segment === 'hu' || segment === 'en' || segment === 'il' ) {
50
+ return lang ;
51
+ }
52
+ return segment ;
53
+ } ) . join ( '/' ) ;
54
+ this . router . navigateByUrl ( updatedUrl ) ;
55
+ // Update the displayed data
56
+ this . listRepresentatives ( ) ;
57
+ }
58
+
36
59
private listRepresentatives ( ) {
37
60
this . route . params . subscribe ( params => {
38
61
const governmentId = params [ 'governmentId' ] ;
@@ -58,19 +81,6 @@ export class RepresentativeListComponent implements OnInit {
58
81
} ) ;
59
82
} ) ;
60
83
}
61
- /*private listAllRepresentatives() {
62
- this.representativeService.renderAllRepresentatives(this.currentLanguage!).subscribe((data) => {
63
- this.representatives = data.map((representative) => {
64
- console.log("Representatives: " + JSON.stringify(representative));
65
- const government = representative.government;
66
- return {
67
- ...representative,
68
- governmentName: government ? government.name : '',
69
- image: this.sanitizer.bypassSecurityTrustUrl(`data:image/png;base64,${representative.image}`),
70
- };
71
- });
72
- });
73
- }*/
74
84
75
85
private listRepresentativesByGovId ( currentLanguage : string , governmentId : number ) {
76
86
this . currentGovernmentId = governmentId ;
0 commit comments