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} /> }
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> ); }
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: () =>
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'), });
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;