|
@@ -4,7 +4,7 @@ module rpgcards {
|
4
|
4
|
|
5
|
5
|
|
6
|
6
|
var homeItem = React.DOM.div
|
7
|
|
- ( { className: 'navbar-item', onClick: null }
|
|
7
|
+ ( { className: 'navbar-item', onClick: (e)=>page("/") }
|
8
|
8
|
, React.DOM.i({ className: 'server icon' })
|
9
|
9
|
, 'Home'
|
10
|
10
|
);
|
|
@@ -17,6 +17,25 @@ module rpgcards {
|
17
|
17
|
var flexItem = React.DOM.div
|
18
|
18
|
( { className: 'flex-navbar-item' }
|
19
|
19
|
);
|
|
20
|
+
|
|
21
|
+ function breadCrumb(name: string, link: string): React.ReactElement<any> {
|
|
22
|
+ return React.DOM.div( { className: 'flex-item', onClick: ()=>page(link) }
|
|
23
|
+ , name
|
|
24
|
+ );
|
|
25
|
+ }
|
|
26
|
+
|
|
27
|
+ var breadCrumbSeparator = React.DOM.div
|
|
28
|
+ ( { className: 'navbar-item'}
|
|
29
|
+ , '>'
|
|
30
|
+ );
|
|
31
|
+
|
|
32
|
+ function breadCrumbs(viewState: ViewState, ids: EntityId[]): React.ReactElement<any>[]{
|
|
33
|
+ switch(viewState) {
|
|
34
|
+ case ViewState.MainMenu: return null;
|
|
35
|
+ case ViewState.DeckList: return null;
|
|
36
|
+ case ViewState.DeckEdit: return [breadCrumb("Decks", "/decks")];
|
|
37
|
+ }
|
|
38
|
+ }
|
20
|
39
|
|
21
|
40
|
function accountIdItem() {
|
22
|
41
|
return React.DOM.div
|
|
@@ -27,11 +46,12 @@ module rpgcards {
|
27
|
46
|
}
|
28
|
47
|
|
29
|
48
|
export function renderHeader(store: Store): React.ReactElement<any> {
|
30
|
|
- return React.DOM.div({ className: 'navbar' },
|
31
|
|
- homeItem,
|
32
|
|
- flexItem,
|
33
|
|
- accountIdItem(),
|
34
|
|
- signOutItem
|
|
49
|
+ return React.DOM.div({ className: 'navbar' }
|
|
50
|
+ , homeItem
|
|
51
|
+ , breadCrumbs(store.getViewState(), store.getViewParams())
|
|
52
|
+ , flexItem
|
|
53
|
+ , accountIdItem()
|
|
54
|
+ , signOutItem
|
35
|
55
|
);
|
36
|
56
|
}
|
37
|
57
|
}
|