import React from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import Layout from '../components/Layout';
import Login from '../containers/Login';
import { FullLoading } from '../components/FullLoading';
import BanUserDialog from './BanUserDialog';
import SuspendUserDialog from './SuspendUserDialog';
import RejectUsernameDialog from './RejectUsernameDialog';
import { toggleModal as toggleShortcutModal } from '../actions/moderation';
import { logout } from 'coral-framework/actions/auth';
import { can } from 'coral-framework/services/perms';
import UserDetail from 'coral-admin/src/containers/UserDetail';
import PropTypes from 'prop-types';
import Forbidden from '../components/Forbidden';
class LayoutContainer extends React.Component {
render() {
const {
currentUser,
checkedInitialLogin,
children,
logout,
toggleShortcutModal,
} = this.props;
if (!checkedInitialLogin) {
return ;
}
if (!currentUser) {
return ;
}
if (currentUser) {
if (can(currentUser, 'ACCESS_ADMIN')) {
return (
{children}
);
} else {
return (
);
}
}
return ;
}
}
LayoutContainer.propTypes = {
children: PropTypes.node,
currentUser: PropTypes.object,
checkedInitialLogin: PropTypes.bool,
logout: PropTypes.func,
toggleShortcutModal: PropTypes.func,
};
const mapStateToProps = state => ({
currentUser: state.auth.user,
checkedInitialLogin: state.auth.checkedInitialLogin,
});
const mapDispatchToProps = dispatch =>
bindActionCreators(
{
toggleShortcutModal,
logout,
},
dispatch
);
export default connect(
mapStateToProps,
mapDispatchToProps
)(LayoutContainer);