NavDropdown.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import React from "react";
  2. import "bootstrap/dist/css/bootstrap.min.css";
  3. import { Link } from "react-router-dom";
  4. import {
  5. DropdownToggle,
  6. DropdownMenu,
  7. DropdownItem,
  8. Button,
  9. ButtonDropdown
  10. } from "reactstrap";
  11. export default class NavDropdown extends React.Component{
  12. state = {
  13. isOpen: false,
  14. }
  15. toggle = () => this.setState({isOpen: !this.state.isOpen});
  16. render(){
  17. return(
  18. <ButtonDropdown isOpen={this.state.isOpen} toggle={this.toggle}>
  19. <Button id="caret" color="link" className="pr-2">
  20. <Link className="nav-link pr-0" to={this.props.link.url}>{this.props.link.name}</Link>
  21. </Button>
  22. <DropdownToggle caret color="link" className="pl-0" style={{color: "rgba(255,255,255,.5)"}}/>
  23. <DropdownMenu right>
  24. <DropdownItem >
  25. <Link className="nav-link text-dark" to={this.props.link.url}>
  26. {this.props.link.name}
  27. </Link>
  28. </DropdownItem>
  29. {this.props.link.sublinks.map((sublink, idx) => (
  30. <DropdownItem key={idx}>
  31. <Link className="nav-link text-dark" to={sublink.url} key={idx}>
  32. {sublink.name}
  33. </Link>
  34. </DropdownItem>
  35. ))}
  36. </DropdownMenu>
  37. </ButtonDropdown>
  38. );
  39. }
  40. }