assets/src/index.js

import React from 'react';
import ReactDOM from 'react-dom';

import { Provider } from 'react-redux';
import { Route } from 'react-router';
import { Switch, HashRouter } from 'react-router-dom';

import { LocaleProvider } from 'antd';
import { addLocaleData, IntlProvider } from 'react-intl';

import { NcoLocaleProvider } from '@neteco/react-component';

import createHistory from 'history/createBrowserHistory';
import registerServiceWorker from './registerServiceWorker';
import { getSelectedLocale } from './locales/getLocale';
import App from './App';
import createStore from './store';

import checkLoginStatus from './library/checkLoginStatus';

import './index.less';

const { neteco } = window;

const getCookieLocale = () => {
  const localeString = document.cookie
    .split(';')
    .find(entrie => entrie.indexOf('locale') !== -1);
  if (localeString) {
    return localeString.split('=')[1].trim();
  }
  return false;
};
const render = () => {
  checkLoginStatus()
    .then(() => {
      neteco.framework.define('netecoPvms', {
        base: '/pvmsextwebsite/assets/build/',
        assets: [],
      });

      const { Prel } = window;

      // 加载piu到应用
      Prel.ready(() => {
        Prel.autoLoad({
          NetEcoI18nPiu: '*',
        });
      });
      neteco.framework.start('netecoPvms', async (st, piu) => {
        const cookieLocaleStr = getCookieLocale();
        const cookieLocale = cookieLocaleStr || st.locale;
        const history = createHistory();
        const store = createStore(history);
        const appLocale = await getSelectedLocale(cookieLocale);
        addLocaleData(appLocale.data);
        ReactDOM.render(
        <NcoLocaleProvider locale={appLocale.ncoReactComponent}>
          <Provider store={store}>
          <LocaleProvider locale={appLocale.antd}>
          <IntlProvider
        locale={appLocale.locale}
        messages={appLocale.messages}
          >
          <HashRouter>
          <Switch>
          <Route path="/" component={App} />
        </Switch>
        </HashRouter>
        </IntlProvider>
        </LocaleProvider>
        </Provider>
        </NcoLocaleProvider>,
        document.getElementById('root'),
      );

        registerServiceWorker();
      });
    })
    .catch(() => {
      window.location.href =
        '/unisess/v1/auth?service=/pvmswebsite/assets/build/index.html#/home/list';
    });
};

render();
posted @ 2020-04-04 10:53  onyli  阅读(489)  评论(0)    收藏  举报