import React from 'react' import { connect } from 'react-redux' import { translate } from 'react-i18next' import Header from './Header.jsx' import Login from './Login.jsx' import Dashboard from './Dashboard.jsx' import Account from './Account.jsx' import AppFullscreenManager from './AppFullscreenManager.jsx' import FlashMessage from '../component/FlashMessage.jsx' import WorkspaceContent from './WorkspaceContent.jsx' import WIPcomponent from './WIPcomponent.jsx' import { Route, withRouter, Switch } from 'react-router-dom' import PrivateRoute from './PrivateRoute.jsx' import { COOKIE, PAGE } from '../helper.js' import { getAppList, getUserIsConnected, getContentTypeList } from '../action-creator.async.js' import { removeFlashMessage, setAppList, setUserConnected, setContentTypeList } from '../action-creator.sync.js' import Cookies from 'js-cookie' class Tracim extends React.Component { constructor (props) { super(props) document.addEventListener('appCustomEvent', this.customEventReducer) } customEventReducer = async ({ detail: { type, data } }) => { switch (type) { case 'redirect': console.log('%c Custom event', 'color: #28a745', type, data) this.props.history.push(data.url) break } } async componentDidMount () { const { dispatch } = this.props const userFromCookies = { email: Cookies.get(COOKIE.USER_LOGIN), auth: Cookies.get(COOKIE.USER_AUTH) } const fetchGetUserIsConnected = await dispatch(getUserIsConnected(userFromCookies)) switch (fetchGetUserIsConnected.status) { case 200: const userLogged = { ...fetchGetUserIsConnected.json, auth: userFromCookies.auth, logged: true } dispatch(setUserConnected(userLogged)) const fetchGetAppList = await dispatch(getAppList(userLogged)) if (fetchGetAppList.status === 200) dispatch(setAppList(fetchGetAppList.json)) const fetchGetContentTypeList = await dispatch(getContentTypeList(userLogged)) if (fetchGetContentTypeList.status === 200) dispatch(setContentTypeList(fetchGetContentTypeList.json)) break case 401: dispatch(setUserConnected({logged: false})); break default: dispatch(setUserConnected({logged: null})); break } } handleRemoveFlashMessage = msg => this.props.dispatch(removeFlashMessage(msg)) render () { const { flashMessage, t } = this.props return (




NYI
} />
{/* for testing purpose only */}
) } } const mapStateToProps = ({ flashMessage }) => ({ flashMessage }) export default withRouter(connect(mapStateToProps)(translate()(Tracim)))