Просмотр исходного кода

organize Sidebar items for guest users

Yuki Takei 5 лет назад
Родитель
Сommit
3e86ce82c5
1 измененных файлов с 13 добавлено и 8 удалено
  1. 13 8
      src/client/js/components/Sidebar/SidebarNav.jsx

+ 13 - 8
src/client/js/components/Sidebar/SidebarNav.jsx

@@ -66,6 +66,7 @@ class SidebarNav extends React.Component {
 
 
   render() {
   render() {
     const { isAdmin, currentUsername } = this.props.appContainer;
     const { isAdmin, currentUsername } = this.props.appContainer;
+    const isLoggedIn = currentUsername != null;
 
 
     const primaryItems = [
     const primaryItems = [
       this.generatePrimaryItemObj('custom', 'Custom Sidebar', 'code'),
       this.generatePrimaryItemObj('custom', 'Custom Sidebar', 'code'),
@@ -74,16 +75,20 @@ class SidebarNav extends React.Component {
       // this.generatePrimaryItemObj('favorite', 'Favorite', 'icon-star'),
       // this.generatePrimaryItemObj('favorite', 'Favorite', 'icon-star'),
     ];
     ];
 
 
-    const secondaryItems = [
-      this.generateSecondaryItemObj('draft', 'Draft', 'file_copy', `/user/${currentUsername}#user-draft-list`),
+    let secondaryItems = [
+      isAdmin && (
+        this.generateSecondaryItemObj('admin', 'Admin', 'settings', '/admin')
+      ),
+      isLoggedIn && (
+        this.generateSecondaryItemObj('draft', 'Draft', 'file_copy', `/user/${currentUsername}#user-draft-list`)
+      ),
       this.generateSecondaryItemObj('help', 'Help', 'help', 'https://docs.growi.org', true),
       this.generateSecondaryItemObj('help', 'Help', 'help', 'https://docs.growi.org', true),
-      this.generateSecondaryItemObj('trash', 'Trash', 'delete', '/trash'),
+      isLoggedIn && (
+        this.generateSecondaryItemObj('trash', 'Trash', 'delete', '/trash')
+      ),
     ];
     ];
-    if (isAdmin) {
-      secondaryItems.unshift( // add to the beginning
-        this.generateSecondaryItemObj('admin', 'Admin', 'settings', '/admin'),
-      );
-    }
+    // remove 'false' items
+    secondaryItems = secondaryItems.filter(item => item !== false);
 
 
     return (
     return (
       <GlobalNav
       <GlobalNav