瀏覽代碼

Breadcrumbs in header

crobi 9 年之前
父節點
當前提交
f0c0fce9ee
共有 1 個文件被更改,包括 26 次插入6 次删除
  1. 26
    6
      client/src/views/header.ts

+ 26
- 6
client/src/views/header.ts 查看文件

@@ -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
 }

Loading…
取消
儲存