Project

General

Profile

Download (998 Bytes) Statistics
| Branch: | Tag: | Revision:
import React from 'react';
import { Spinner } from 'patternfly-react';
import { STATUS } from '../../../constants';
import MessageBox from '../MessageBox';
import './Loader.css';

const _simpleLoader = spinnerSize => (
<div className="loader-root">
<Spinner loading size={spinnerSize}/>
</div>
);

const Loader = ({ status, children, spinnerSize = 'lg' }) => {
let content;

switch (status) {
case STATUS.PENDING: {
return _simpleLoader(spinnerSize);
}
case STATUS.RESOLVED: {
// eslint-disable-next-line prefer-destructuring
content = children[0];
break;
}
case STATUS.ERROR: {
// eslint-disable-next-line prefer-destructuring
content = children[1];
break;
}
default:
content = (<MessageBox icontype="error-circle-o" msg="Invalid Status" />);
break;
}

return (
<div className="loader-root">
{content}
</div>
);
};

export default Loader;

export const simpleLoader = _simpleLoader;
(3-3/3)