Przeglądaj źródła

set isSelected attribute to GlobalItem

Yuki Takei 6 lat temu
rodzic
commit
3f91ddfbe8

+ 1 - 1
src/client/js/components/Sidebar.jsx

@@ -59,7 +59,7 @@ class Sidebar extends React.Component {
       <div className="grw-logo">
         <a href="/"><GrowiLogo /></a>
       </div>
-      <SidebarNav onItemSelected={this.itemSelectedHandler} />
+      <SidebarNav currentContentsId={this.state.currentContentsId} onItemSelected={this.itemSelectedHandler} />
       <Drawer onClose={this.closeDrawer} isOpen={this.state.isDrawerOpen} width="wide">
         <code>Drawer contents</code>
       </Drawer>

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

@@ -17,6 +17,7 @@ import AppContainer from '../../services/AppContainer';
 class SidebarNav extends React.Component {
 
   static propTypes = {
+    currentContentsId: PropTypes.string,
     onItemSelected: PropTypes.func,
   };
 
@@ -30,16 +31,22 @@ class SidebarNav extends React.Component {
     }
   }
 
+  generateSidebarItemObj(id, icon, label) {
+    return {
+      id,
+      icon,
+      label,
+      isSelected: this.props.currentContentsId === id,
+      onClick: () => this.itemSelectedHandler(id),
+    };
+  }
+
   render() {
     return (
       <GlobalNav
         primaryItems={[
-          {
-            id: 'custom', icon: EditIcon, label: 'Custom Sidebar', onClick: () => this.itemSelectedHandler('custom'),
-          },
-          {
-            id: 'history', icon: TrayIcon, label: 'History', onClick: () => this.itemSelectedHandler('history'),
-          },
+          this.generateSidebarItemObj('custom', EditIcon, 'Custom Sidebar'),
+          this.generateSidebarItemObj('history', TrayIcon, 'History'),
         ]}
         secondaryItems={[]}
       />