1
1
import { Component , OnInit } from '@angular/core' ;
2
2
import { BreakpointObserver , Breakpoints } from '@angular/cdk/layout' ;
3
- import { Subgenre } from './models/subgenre' ;
4
3
import { Genre } from './models/genre' ;
5
4
import { BehaviorSubject } from 'rxjs' ;
5
+ import { DataService } from './services/data.service' ;
6
6
7
7
@Component ( {
8
8
selector : 'app-root' ,
@@ -13,28 +13,10 @@ export class AppComponent implements OnInit {
13
13
isMobileDisplay : boolean = true ;
14
14
selectedGenreIndex : number = 0 ;
15
15
selectedSubGenreIndex : number = 0 ;
16
- musicGenres : Genre [ ] = [
17
- new Genre ( 'Metal' ,
18
- [
19
- new Subgenre ( 'Metal' , 'metal' ) ,
20
- new Subgenre ( 'Rock' , 'rock-beat' ) ,
21
- new Subgenre ( 'Rock variation' , 'rock-beat-variation' ) ,
22
- new Subgenre ( 'Half time groove' , 'half-time-groove' ) ,
23
- ] ) ,
24
- new Genre ( 'Techno' , [
25
- new Subgenre ( 'Basique' , 'techno' ) ,
26
- ] ) ,
27
- new Genre ( 'Garage' , [
28
- new Subgenre ( 'Drum & Bass' , 'drum-n-bass' ) ,
29
- new Subgenre ( 'Garage - 2 step' , 'garage' ) ,
30
- ] ) ,
31
- new Genre ( 'Trance' , [
32
- new Subgenre ( 'Psytrance' , 'psytrance' ) ,
33
- ] )
34
- ] ;
16
+ musicGenres : Genre [ ] = [ ] ;
35
17
fileNameBehaviourSubject : BehaviorSubject < string > ;
36
18
37
- constructor ( private responsive : BreakpointObserver ) {
19
+ constructor ( private responsive : BreakpointObserver , private dataService : DataService ) {
38
20
this . fileNameBehaviourSubject = new BehaviorSubject < string > ( 'metal' ) ;
39
21
}
40
22
@@ -45,6 +27,10 @@ export class AppComponent implements OnInit {
45
27
. subscribe ( result => {
46
28
this . isMobileDisplay = ! result . matches ;
47
29
} ) ;
30
+
31
+ this . dataService . getData < Genre [ ] > ( 'genres' ) . subscribe ( ( result : Genre [ ] ) => {
32
+ this . musicGenres = result ;
33
+ } ) ;
48
34
}
49
35
50
36
selectGenre ( i : number ) {
@@ -58,7 +44,7 @@ export class AppComponent implements OnInit {
58
44
this . updateFileName ( ) ;
59
45
}
60
46
61
- private updateFileName ( ) {
47
+ updateFileName ( ) {
62
48
const fileName = this . musicGenres [ this . selectedGenreIndex ] . subGenres [ this . selectedSubGenreIndex ] . fileName ;
63
49
this . fileNameBehaviourSubject . next ( fileName ) ;
64
50
}
0 commit comments