Personal Dashboard

Topbar.jsx 1.7KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from 'react'
  2. import { connect } from 'react-redux'
  3. import { Popover, PopoverInteractionKind, Position } from '@blueprintjs/core'
  4. import { Navbar, NavbarGroup, NavbarDivider, NavbarHeading } from './Navbar'
  5. import NavLinkBP from './NavLinkBP'
  6. import UserMenu from './UserMenu'
  7. import { LOGOUT } from '../Store/Actions'
  8. import Notifications from './Notifications'
  9. const TopbarTemplate = ({ logout }) =>
  10. <div>
  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="document"/>
  16. </NavbarGroup>
  17. <NavbarGroup align="right">
  18. <input className="pt-input" placeholder="Search files..." type="text" />
  19. <NavbarDivider />
  20. <Popover content={Notifications} position={Position.BOTTOM_RIGHT}
  21. popoverClassName="pt-popover-content-sizing"
  22. interactionKind={PopoverInteractionKind.HOVER}>
  23. <button className="pt-button pt-minimal pt-icon-notifications"></button>
  24. </Popover>
  25. <Popover content={UserMenu({logout})} position={Position.BOTTOM_RIGHT}
  26. interactionKind={PopoverInteractionKind.CLICK}>
  27. <button className="pt-button pt-minimal pt-icon-user"></button>
  28. </Popover>
  29. </NavbarGroup>
  30. </Navbar>
  31. </div>
  32. const mapDispatchToProps = dispatch => ({ logout: () => { console.log('dispatching'); dispatch(LOGOUT()) } })
  33. const Topbar = connect(null, mapDispatchToProps)(TopbarTemplate)
  34. export default Topbar