import React from "react";
import { useTranslation } from "react-i18next";
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 "./MainNav.scss";
import { SidebarToggleButton } from "../sidebar/SidebarToggleButton";
interface OwnProps {
toggleSidebar: () => void;
}
interface StateProps {
isGuest: boolean;
}
const mapStateToProps = (state: RootState): StateProps => ({
isGuest: state.walletManager.isGuest
});
type Props = StateProps & OwnProps;
const MainNavComponent: React.FC<Props> = ({ isGuest, toggleSidebar }: Props): JSX.Element => {
const { t } = useTranslation();
return (
<Navbar bg="dark" variant="dark" sticky="top" id="main-nav">
<SidebarToggleButton toggleSidebar={toggleSidebar} />
<Brand />
{/* 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>
{t("nav.send")}
</Nav.Link>
</LinkContainer>
{/* Request Krist button */}
<LinkContainer to="/request">
<Nav.Link>
<span className="nav-icon icon-download"></span>
{t("nav.request")}
</Nav.Link>
</LinkContainer>
</Nav>}
<Search />
<ConnectionIndicator />
<SettingsCog />
</Navbar>
);
};
export const MainNav = connect(mapStateToProps)(MainNavComponent);