import loadable, { LoadableComponent } from '@loadable/component'; import React from 'react'; import './spinner.css'; interface DetailsLoaderProps { pattern: string; } const slug = (item: string) => item.toLowerCase().split(' ').join('-'); // In order to create a link to another page that is dynamically loaded (via ), // the page chunks have to be loadable by @loadable. // We have to add a magic comment /* #__LOADABLE__ */ here // and the following plugin to Babel's settings (.babelrc): // { // "plugins": ["@loadable/babel-plugin"], // } const loadDetails = /* #__LOADABLE__ */ (props: DetailsLoaderProps) => import(`../patterns/${slug(props.pattern)}/Details`); const DetailsLoader: LoadableComponent = loadable(loadDetails, { fallback: (
), }); export default DetailsLoader;