DocSpace-buildtools/packages/components/request-loader/index.js

60 lines
1.5 KiB
JavaScript
Raw Normal View History

2019-06-18 14:37:36 +00:00
import React from "react";
import PropTypes from "prop-types";
import Text from "../text";
import { OvalLoader, StyledInner, StyledOuter } from "./styled-request-loader";
2019-06-18 14:37:36 +00:00
const RequestLoader = (props) => {
//console.log("RequestLoader render");
const { loaderColor, loaderSize, label, fontColor, fontSize } = props;
2019-06-18 14:37:36 +00:00
return (
<StyledOuter {...props}>
<StyledInner {...props}>
<OvalLoader
type="oval"
color={loaderColor}
size={loaderSize}
label={label}
/>
<Text className="text-style" color={fontColor} fontSize={fontSize}>
{label}
</Text>
2019-06-18 14:37:36 +00:00
</StyledInner>
</StyledOuter>
);
};
RequestLoader.propTypes = {
/** Visibility */
2019-06-18 14:37:36 +00:00
visible: PropTypes.bool,
/** CSS z-index */
zIndex: PropTypes.number,
/** Svg height and width value */
loaderSize: PropTypes.string,
/** Svg color */
2019-06-18 14:37:36 +00:00
loaderColor: PropTypes.string,
/** Svg aria-label and text label */
2019-06-18 14:37:36 +00:00
label: PropTypes.string,
/** Text label font size */
fontSize: PropTypes.string,
/** Text label font color */
2019-06-18 14:37:36 +00:00
fontColor: PropTypes.string,
/** Accepts class */
className: PropTypes.string,
/** Accepts id */
id: PropTypes.string,
/** Accepts css style */
style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),
2019-06-18 14:37:36 +00:00
};
RequestLoader.defaultProps = {
visible: false,
zIndex: 256,
loaderSize: "16px",
loaderColor: "#999",
label: "Loading... Please wait...",
fontSize: "12px",
fontColor: "#999",
2019-06-18 14:37:36 +00:00
};
export default RequestLoader;