import React, { Component } from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import { NavLink } from "react-router-dom";
import { translate } from "react-i18next";
@connect(state => ({
user: {
loggedIn: state.session.get("loggedIn")
},
}))
@translate(["navbar"], { wait: true })
export default class Menu extends Component {
static propTypes = {
loggedIn: PropTypes.bool,
t: PropTypes.func,
};
static defaultProps = {
loggedIn: false,
t: () => {},
};
constructor(props) {
super(props);
this.state = {
showNavbar: false,
};
}
getLink(to, text, canShow = true) {
return (canShow) ? { text } : "";
}
toggleNavbar = () => {
this.setState({
showNavbar: !this.state.showNavbar,
});
}
closeNavbar = () => {
this.setState({
showNavbar: false,
});
}
render() {
const { t } = this.props;
return (
{this.getLink("/",
)}
{this.getLink("/", t("navbar:home"))}
{this.getLink("/login", t("navbar:login"), !this.props.user.loggedIn)}
{this.getLink("/register", t("navbar:register"), !this.props.user.loggedIn)}
{this.getLink("/settings", t("navbar:settings"), this.props.user.loggedIn)}
{this.getLink("/logout", t("navbar:logout"), this.props.user.loggedIn)}
);
}
}