Newer
Older
CrypticOreWallet / src / layouts / main / components / nav / index.tsx
@Drew Lemmy Drew Lemmy on 10 Sep 2020 1 KB refactor: convert to redux
import React from "react";

import Navbar from "react-bootstrap/Navbar";
import Nav from "react-bootstrap/Nav";
import { LinkContainer } from "react-router-bootstrap";

import { Brand } from "./Brand";
import { Search } from "./Search";
import { ConnectionIndicator } from "./ConnectionIndicator";
import { SettingsCog } from "./SettingsCog";

import { connect } from "react-redux";
import { RootState } from "@store";

import "./index.scss";

interface Props {
  isGuest: boolean;
}

const mapStateToProps = (state: RootState): Props => ({
  isGuest: state.walletManager.isGuest
});

const MainNavComponent: React.FC<Props> = ({ isGuest }: Props): JSX.Element => (
  <Navbar bg="dark" variant="dark" fixed="top" id="main-nav">
    <Brand />
    <Navbar.Toggle aria-controls="main-nav-collapse" />
    <Navbar.Collapse id="main-nav-collapse">
      {/* Main nav buttons, only show if logged in */}
      {!isGuest && <Nav>
        {/* Send Krist button */}
        <LinkContainer to="/send">
          <Nav.Link><span className="nav-icon icon-paper-plane"></span>Send</Nav.Link>
        </LinkContainer>

        {/* Receive Krist button */}
        <LinkContainer to="/request">
          <Nav.Link><span className="nav-icon icon-download"></span>Request</Nav.Link>
        </LinkContainer>
      </Nav>}
      <Search />
      <ConnectionIndicator />
      <SettingsCog />
    </Navbar.Collapse>
  </Navbar>
);

export const MainNav = connect(mapStateToProps)(MainNavComponent);