/* eslint-disable jsx-a11y/no-href*/ import React from 'react'; import PropTypes from 'prop-types'; import { BrowserRouter as Router, Switch, Route } from 'react-router-dom'; import { Grid, Alert, Button } from 'react-bootstrap'; import { Meteor } from 'meteor/meteor'; import { createContainer } from 'meteor/react-meteor-data'; import { Roles } from 'meteor/alanning:roles'; import { Bert } from 'meteor/themeteorchef:bert'; import Navigation from '../../components/Navigation/Navigation'; import Authenticated from '../../components/Authenticated/Authenticated'; import Public from '../../components/Public/Public'; import Index from '../../pages/Index/Index'; import Documents from '../../pages/Documents/Documents'; import NewDocument from '../../pages/NewDocument/NewDocument'; import ViewDocument from '../../pages/ViewDocument/ViewDocument'; import EditDocument from '../../pages/EditDocument/EditDocument'; import Signup from '../../pages/Signup/Signup'; import Login from '../../pages/Login/Login'; import Logout from '../../pages/Logout/Logout'; import VerifyEmail from '../../pages/VerifyEmail/VerifyEmail'; import RecoverPassword from '../../pages/RecoverPassword/RecoverPassword'; import ResetPassword from '../../pages/ResetPassword/ResetPassword'; import Profile from '../../pages/Profile/Profile'; import NotFound from '../../pages/NotFound/NotFound'; import Footer from '../../components/Footer/Footer'; import Terms from '../../pages/Terms/Terms'; import Privacy from '../../pages/Privacy/Privacy'; import License from '../../pages/License/License'; import ReSendEmail from '../../components/ReSendEmail/ReSendEmail'; import Reconnect from '../../components/Reconnect/Reconnect'; // i18n import { I18nextProvider } from 'react-i18next'; import i18n from '/imports/startup/client/i18n'; // https://github.com/gadicc/meteor-blaze-react-component/ import Blaze from 'meteor/gadicc:blaze-react-component'; //https://react.i18next.com/components/i18nextprovider.html import './App.scss'; const App = props => ( {!props.loading ?
{/* bsClass="previously-container-but-disabled" > */}
: ''}
); App.defaultProps = { userId: '', emailAddress: '', }; App.propTypes = { loading: PropTypes.bool.isRequired, userId: PropTypes.string, emailAddress: PropTypes.string, emailVerified: PropTypes.bool.isRequired, }; const getUserName = name => ({ string: name, object: `${name.first} ${name.last}`, }[typeof name]); export default createContainer(() => { const loggingIn = Meteor.loggingIn(); const user = Meteor.user(); const userId = Meteor.userId(); const loading = !Roles.subscription.ready(); const name = user && user.profile && user.profile.name && getUserName(user.profile.name); const emailAddress = user && user.emails && user.emails[0].address; return { loading, loggingIn, authenticated: !loggingIn && !!userId, name: name || emailAddress, roles: !loading && Roles.getRolesForUser(userId), userId, emailAddress, emailVerified: user && user.emails ? user && user.emails && user.emails[0].verified : true, }; }, App);