示例#1
0
const Routers = ({history, app}) => {
  const routes = [
    {
      path: '/',
      component: App,
      getChildRoutes ({location}, cb) {
        registerModelByPath(app, location.pathname)
        cb(null, (r => {
          console.log(r.keys().map(key => r(key)))
          return r.keys().map(key => r(key))
        })(require.context('./', true, /^\.\/routes\/((?!\/)[\s\S])+\/route\.js$/)))
      }
    },
    {
      path: '*',
      component: asyncComponent({
        resolve: () => import('./routes/404.js')
      })
    }]

  return <Router history={history} routes={routes} />
}
示例#2
0
import debug from 'helpers/debug';
import ChaptersList from 'components/Home/ChaptersList';
import * as customPropTypes from 'customPropTypes';

import IndexHeader from 'components/IndexHeader';
import QuickChapters from 'components/Home/QuickChapters';
import Title from 'components/Home/Title';
import LocaleFormattedMessage from 'components/LocaleFormattedMessage';
import ComponentLoader from '../../components/ComponentLoader';

const LoaderStyle = { position: 'relative', overflow: 'hidden' };

const JuzList = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "JuzList" */ '../../components/Home/JuzList'),
  LoadingComponent: ComponentLoader,
});

class Home extends Component {
  renderJuzList() {
    const { chapters, juzs, loadingJuzs } = this.props;

    if (loadingJuzs) {
      return (
        <div className="row">
          <Loader isActive relative style={LoaderStyle} />
        </div>
      );
    }
示例#3
0
import LocaleFormattedMessage from 'components/LocaleFormattedMessage';

// Helpers
import makeHeadTags from 'helpers/makeHeadTags';
import debug from 'helpers/debug';

import * as AudioActions from 'redux/actions/audioplayer.js';
import * as AyahActions from 'redux/actions/verses.js';
import * as OptionsActions from 'redux/actions/options.js';
import * as MediaActions from 'redux/actions/media.js';

const LoaderStyle = { position: 'relative', overflow: 'hidden' };

const PageView = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "PageView" */ 'components/PageView'),
  LoadingComponent: ComponentLoader,
});

const Audioplayer = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "Audioplayer" */ 'components/Audioplayer'),
  LoadingComponent: ComponentLoader,
});
const ChapterInfoPanelContainer = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "ChapterInfo" */ 'containers/ChapterInfoPanelContainer'),
  LoadingComponent: ComponentLoader,
});
const TopOptions = asyncComponent({
  resolve: () =>
示例#4
0
import { asyncComponent } from 'react-async-component';

export default asyncComponent({
  // include home and about route in same chunk e.g main
  resolve: () => System.import(/* webpackChunkName: "main" */ './AboutRoute'),
});
示例#5
0
import config from 'config';
import metricsConfig from 'helpers/metrics';
import Footer from 'components/Footer';
import NoScript from 'components/NoScript';
import { removeMedia } from '../../redux/actions/media';

import Routes from '../../components/Routes';
import Navbars from '../../components/Navbars';

const ModalHeader = Modal.Header;
const ModalTitle = Modal.Title;
const ModalBody = Modal.Body;

const GlobalSidebar = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "GlobalSidebar" */ 'components/GlobalSidebar'),
  LoadingComponent: ComponentLoader,
});

const SmartBanner = asyncComponent({
  resolve: () =>
    import(/* webpackChunkName: "SmartBanner" */ 'components/SmartBanner'),
  LoadingComponent: ComponentLoader,
});

const NoScriptWarning = styled.div`
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1201;