forked from PatrickJS/PatrickJS-starter
-
Notifications
You must be signed in to change notification settings - Fork 54
/
app.component.ts
97 lines (88 loc) · 2.57 KB
/
app.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*
* Angular 2 decorators and services
*/
import {
Component,
OnInit,
ViewEncapsulation
} from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/take';
import { shell } from 'electron';
import { AppState } from './reducers';
import { Store } from '@ngrx/store';
import { HomeState } from './home/home.reducer';
/*
* App Component
* Top Level Component
*/
@Component({
selector: 'app',
encapsulation: ViewEncapsulation.None,
styleUrls: [
'./app.component.css'
],
template: `
<nav>
<a [routerLink]=" ['./'] "
routerLinkActive="active" [routerLinkActiveOptions]= "{exact: true}">
Index
</a>
<a [routerLink]=" ['./home'] "
routerLinkActive="active" [routerLinkActiveOptions]= "{exact: true}">
Home
</a>
<a [routerLink]=" ['./detail'] "
routerLinkActive="active" [routerLinkActiveOptions]= "{exact: true}">
Detail
</a>
<a [routerLink]=" ['./barrel'] "
routerLinkActive="active" [routerLinkActiveOptions]= "{exact: true}">
Barrel
</a>
<a [routerLink]=" ['./about'] "
routerLinkActive="active" [routerLinkActiveOptions]= "{exact: true}">
About
</a>
</nav>
<main>
<router-outlet></router-outlet>
</main>
<pre class="app-state">this.state$ = {{ state$ | async | json }}</pre>
<footer>
<span>
Angular Electron Dream Starter by <a (click)="openURL(url)" href="#">@ColinSkow</a>
</span>
<div>
<a [href]="url">
<img [src]="angularclassLogo" width="25%">
</a>
</div>
</footer>
`
})
export class AppComponent implements OnInit {
public angularclassLogo = 'assets/img/angular-electron.svg';
public name = 'Angular Electron Dream Starter';
public url = 'https://github.com/colinskow/angular-electron-dream-starter';
public state$: Observable<HomeState>;
constructor(private store: Store<AppState>) {
this.state$ = this.store.select(state => state.home);
}
public ngOnInit() {
this.state$.take(1)
.subscribe(state => {
console.log('Initial App State', state);
});
}
public openURL(url) {
shell.openExternal(url);
}
}
/*
* Please review the https://github.com/AngularClass/angular2-examples/ repo for
* more angular app examples that you may copy/paste
* (The examples may not be updated as quickly. Please open an issue on github for us to update it)
* For help or questions please contact us at @AngularClass on twitter
* or our chat on Slack at https://AngularClass.com/slack-join
*/