Personal Dashboard

Topbar.jsx 1.8KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from 'react'
  2. import { connect } from 'react-redux'
  3. import { withRouter } from 'react-router'
  4. import { Popover, PopoverInteractionKind, Position } from '@blueprintjs/core'
  5. import { Navbar, NavbarGroup, NavbarDivider, NavbarHeading } from './Navbar'
  6. import NavLinkBP from './NavLinkBP'
  7. import UserMenu from './UserMenu'
  8. import { LOGOUT } from '../Store/Actions'
  9. import Notifications from './Notifications'
  10. const TopbarTemplate = ({ username, logout }) =>
  11. <Navbar dark>
  12. <NavbarGroup align="left">
  13. <NavbarHeading>Lighthouse</NavbarHeading>
  14. <NavLinkBP path="/" label="Home" icon="home" exact/>
  15. <NavLinkBP path="/projects" label="Projects" icon="projects"/>
  16. <NavLinkBP path="/notes" label="Notes" icon="clipboard"/>
  17. <NavLinkBP path="/todos" label="Todos" icon="property"/>
  18. </NavbarGroup>
  19. <NavbarGroup align="right">
  20. <input className="pt-input" placeholder="Search files..." type="text" />
  21. <NavbarDivider />
  22. <Popover content={Notifications} position={Position.BOTTOM_RIGHT}
  23. popoverClassName="pt-popover-content-sizing"
  24. interactionKind={PopoverInteractionKind.HOVER}>
  25. <button className="pt-button pt-minimal pt-icon-notifications"></button>
  26. </Popover>
  27. <Popover content={<UserMenu />} position={Position.BOTTOM_RIGHT}
  28. interactionKind={PopoverInteractionKind.CLICK}>
  29. <button className="pt-button pt-minimal pt-icon-user">{username}</button>
  30. </Popover>
  31. </NavbarGroup>
  32. </Navbar>
  33. const Topbar = withRouter(connect(state => ({ username: state.user.displayName }))(TopbarTemplate))
  34. export default Topbar