import React from 'react'; import { NavLink, withRouter } from 'react-router-dom'; import Logo from 'components/Logo'; import NavBarChannelDropdown from 'components/NavBarChannelOptionsDropdown'; import request from 'utils/request'; const VIEW = 'VIEW'; const LOGOUT = 'LOGOUT'; class NavBar extends React.Component { constructor (props) { super(props); this.checkForLoggedInUser = this.checkForLoggedInUser.bind(this); this.logoutUser = this.logoutUser.bind(this); this.handleSelection = this.handleSelection.bind(this); } componentDidMount () { // check to see if the user is already logged in this.checkForLoggedInUser(); } checkForLoggedInUser () { const params = { credentials: 'include', } request('/user', params) .then(({success, message}) => { if (success) { this.props.onChannelLogin(message.channelName, message.shortChannelId, message.channelClaimId); } else { console.log('user was not logged in'); } }) .catch(error => { console.log('authenticate user errored:', error); }); } logoutUser () { // send logout request to server window.location.href = '/logout'; // NOTE: replace with a call to the server that does not redirect // this.props.onChannelLogout() } handleSelection (event) { console.log('handling selection', event); const value = event.target.selectedOptions[0].value; console.log('value', value); switch (value) { case LOGOUT: this.logoutUser(); break; case VIEW: // redirect to channel page this.props.history.push(`/${this.props.channelName}:${this.props.channelLongId}`); break; default: break; } } render () { return (
Open-source, decentralized image and video sharing.
Publish About { this.props.channelName ? ( ) : ( Channel )}
); } } export default withRouter(NavBar);