import React from 'react'; // jshint ignore:line
import { connect } from 'react-redux';
import BanDetails from './ban-details'; // jshint ignore:line
import { Posts, Threads } from './feed'; // jshint ignore:line
import Followers from './followers'; // jshint ignore:line
import Follows from './follows'; // jshint ignore:line
import UsernameHistory from './username-history'; // jshint ignore:line
import Header from './header'; // jshint ignore:line
import ModerationNav from './moderation/nav'; // jshint ignore:line
import { SideNav, CompactNav } from './navs'; // jshint ignore:line
import Avatar from 'misago/components/avatar'; // jshint ignore:line
import WithDropdown from 'misago/components/with-dropdown';
import misago from 'misago';
import { hydrate } from 'misago/reducers/profile'; // jshint ignore:line
import polls from 'misago/services/polls';
import store from 'misago/services/store'; // jshint ignore:line
export default class extends WithDropdown {
constructor(props) {
super(props);
this.startPolling(props.profile.api_url.root);
}
startPolling(api) {
polls.start({
poll: 'user-profile',
url: api,
frequency: 90 * 1000,
update: this.update
});
}
/* jshint ignore:start */
update = (data) => {
store.dispatch(hydrate(data));
};
toggleNav = () => {
if (this.state.dropdown === 'pages') {
this.setState({
dropdown: false
});
} else {
this.setState({
dropdown: 'pages'
});
}
};
toggleModeration = () => {
if (this.state.dropdown === 'moderation') {
this.setState({
dropdown: false
});
} else {
this.setState({
dropdown: 'moderation'
});
}
};
/* jshint ignore:end */
getNavDropdown() {
if (this.state.dropdown === 'pages') {
/* jshint ignore:start */
return