35 lines
1.3 KiB
JavaScript
35 lines
1.3 KiB
JavaScript
|
import React from "react";
|
||
|
import style from './InfoHeaderItem.module.css';
|
||
|
import {FontAwesomeIcon} from "@fortawesome/react-fontawesome";
|
||
|
import {Spinner} from "react-bootstrap";
|
||
|
|
||
|
/**
|
||
|
* a component to display one of the short quickinfo tiles on dashboard
|
||
|
*/
|
||
|
class InfoHeaderItem extends React.Component {
|
||
|
render() {
|
||
|
return (
|
||
|
<div onClick={() => {
|
||
|
// call clicklistener if defined
|
||
|
if (this.props.onClick != null) this.props.onClick();
|
||
|
}} className={style.infoheaderitem} style={{backgroundColor: this.props.backColor}}>
|
||
|
<div className={style.icon}>
|
||
|
<FontAwesomeIcon style={{
|
||
|
verticalAlign: "middle",
|
||
|
lineHeight: "130px"
|
||
|
}} icon={this.props.icon} size='5x'/>
|
||
|
</div>
|
||
|
{this.props.text !== null && this.props.text !== undefined ?
|
||
|
<>
|
||
|
<div className={style.maintext}>{this.props.text}</div>
|
||
|
<div className={style.subtext}>{this.props.subtext}</div>
|
||
|
</>
|
||
|
: <span className={style.loadAnimation}><Spinner animation='border'/></span>
|
||
|
}
|
||
|
</div>
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default InfoHeaderItem;
|