Repository URL to install this package:
|
Version:
2.7.3 ▾
|
import React from 'react'
import { renderWrapper as defaultRenderWrapper } from '../renderProps'
import { PreloaderProps } from './typings'
import AudioLoader from './AudioLoader'
import BoxLoader from './BoxLoader'
import CircleLoader from './CircleLoader'
import CubeLoader from './CubeLoader'
import DotLoader from './DotLoader'
import MaterialCircleLoader from './MaterialCircleLoader'
import MaterialProgressLoader from './MaterialProgressLoader'
import DominoLoader from './DominoLoader'
import WaveLoader from './WaveLoader'
// returning breed based on the breedType
function fromBreedToComponent(breedType: string) {
switch (breedType) {
case 'audio':
return AudioLoader
case 'box':
return BoxLoader
case 'circle':
return CircleLoader
case 'cube':
return CubeLoader
case 'domino':
return DominoLoader
case 'material-circle':
return MaterialCircleLoader
case 'material-progress':
return MaterialProgressLoader
case 'wave':
return WaveLoader
case 'dots':
default:
return DotLoader
}
}
// main component class object
class Preloader extends React.PureComponent<PreloaderProps> {
static defaultProps = {
breedType: 'dots',
renderWrapper: defaultRenderWrapper,
}
render() {
const { breedType, renderWrapper, ...remainingProps } = this.props
const Component = fromBreedToComponent(breedType)
const componentView = <Component {...remainingProps} />
return renderWrapper(componentView)
}
}
export {
Preloader,
AudioLoader,
BoxLoader,
CircleLoader,
CubeLoader,
DotLoader,
MaterialCircleLoader,
MaterialProgressLoader,
DominoLoader,
WaveLoader,
}
export default Preloader